Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis

  • 5 odgovora
  • 3.444 pregleda

Najnovija ↓

DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis 15.02.2007. u 17:34 · pre 239 meseci #1
Dakle, DBGrid je povezan na ClientDataSet.

Želja mi je da kad se forma prikaže prvi gornji vidljivi red u gridu bude RecNo iz dataset-u, a da prethodno
mogu da promenim RecNo (u događaju OnShow).


Kao razultat sam dobio red koji predstavlja trenutni zapis na sredini grida...

Iz očaja sam dodao promenu RecNo i u događaj OnCreate i to daje rezultate, ali samo za prvo prikazivanje forme.
Svako naredni ulaz na formu red stavlja u sredinu grida...


Probao sam nekolika rešenja sa neta ali nijedno nije dalo prave rezultate...

...pravljenje naslednika DBGrida
http://groups.google.com/group...ae3aa88a7f8%231b127ae3aa88a7f8


...pražnjenje propertija DataSource (delovalo je primamljivo!)

DBGrid1.DataSource := nil;
DBGrid1.DataSource := DataSource1;


inače, radim u Delphi 7 i koristim dbExpress ()
Re: DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis 15.02.2007. u 18:07 · pre 239 meseci #2
Nisam siguran da sam te razumeo ispravno, ali da li tebi treba redni broj u TDBGridu?
Ako da, probaj na TDBGrid obraditi event OnDrawColumnCell:
Code:

    if DataSource1.DataSet.RecNo > 0 then
    begin
    if Column.Title.Caption = 'No' then
         DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, IntToStr(DataSource1.DataSet.RecNo));
    end

Dakle, pre toga u TDBGrid dodaj kolonu i u property "Caption" upiši "No" ili šta već želiš.
Potpis
Someone's sitting in the shade today because someone planted a tree a long time ago.
Re: DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis 15.02.2007. u 18:54 · pre 239 meseci #3
malo (više) sam umoran pa mi poruka nije baš sažeta i jasna...izvinjavam se !

obradio sam događaj i ne događa se ništa korisno, bar iz mog ugla :)

probaću kraće i sažetije: želim da mi nakon prikazivanja forme prvi gornji vidljivi red u gridu bude trenutni zapis iz dataset-a
(naravno, to nije nužno prvi zapis u datasetu, jer želim da menjam RecNo pre prikazivanja forme na kojoj se grid nalazi)

naglašavam: samo prilikom prikazivanja forme, ne i prilikom skrolovanja gore-dole kroz grid :)


dakle, ako mi je recimo RecNo = 5 da prvi vidljiv zapis u gridu bude peti; korisnik će naravno moći da pregleda i prethodne redove skrolovanjem na gore :)


sad je valjda jasno :)




Re: DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis 15.02.2007. u 20:49 · pre 239 meseci #4
> probaću kraće i sažetije: želim da mi nakon prikazivanja forme prvi gornji vidljivi red u gridu bude trenutni zapis iz dataset-a
> (naravno, to nije nužno prvi zapis u datasetu, jer želim da menjam RecNo pre prikazivanja forme na kojoj se grid nalazi)

DBGrid nije tako zamišljen da radi, nisam siguran da rešenje postoji a ako postoji da ga je lako naći. Svakako bi morao da detaljno pogledaš kod DBGrida i Grida i vidiš ima li nešto što se može iskoristiti. Ili potraži neku alternativnu DBGrid komponentu.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: DBGrid - prvi vidljivi red; ClientDataSet - trenutni zapis 23.02.2007. u 17:53 · pre 239 meseci #5
Nisam rešio problem, ali sam ga bar zaobišao.

Evo kako:

formu na kojoj se grid nalazi sam prebacio u avaible forms (Project>Options>Forms). Svaki put kada je potrebno da se prikaže grid,
formu kreiram as TForm1.Create(Application); kada korisnik želi da predje na nešto drugo uništim formu sa TForm1.Release i to je to...

Rešenje je daleko od optimalnog, ali drži vodu...

Kad smislim nešto pametnije (prilagodim grid) postovaću...

Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme