Novo

Forum kao aplikacija na telefonu

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

  • 7 odgovora
  • 4.280 pregleda

Najnovija ↓

Dogadjaj DBGrid kod pritiska na kursore 26.09.2005. u 15:25 · pre 256 meseci #1
Koji dogadjaj nastupa kod DBGrid kada se pomeranje po tabeli vrsi ne pritiskom na misa, nego kada se kroz tabelu pomeramo sa kursorima dole-gore.
Probao sam sa OnCellClick, ali to nije.
Re: Dogadjaj DBGrid kod pritiska na kursore 26.09.2005. u 17:48 · pre 256 meseci #2
Imas OnKeyXXX evente pa izaberi koji ti najvise odgovara. OnKeyDown se generise kada se neki taster pritisne, OnKeyUp kada se taster pusti, a OnKeyPress se aktivira kao kad kucas... znaci ako samo kratko pritisnes pa pustis generisace se jedan event, a ako malo duze drzis pojavice se nekoliko eventa sve dok ne pustis dugme.
Potpis
Play Store
Re: Dogadjaj DBGrid kod pritiska na kursore 28.09.2005. u 09:27 · pre 256 meseci #3
Za bilo kakvo track-ovanje promene trenutnog recorda nemoj da se kacis na evente DBGrida ili bilo koje druge DB komponente, kaci se na event dataseta, znaci u tvom slucaju DBGrid.Dataset.OnScroll, tako ces uhvatiti svaku promenu record pointera.
Re: Dogadjaj DBGrid kod pritiska na kursore 28.09.2005. u 13:46 · pre 256 meseci #4
Koristim Delphi 6.
Na DataSource se nalaze 3 eventa:
OnDataChange, OnStateChange i OnUpdateData.
U helpu za ove dogadjaje ne nalazim kako bih ovo mogao iskoristiti za ispitivanje pritiska kursorskih tastera.
Takodje, OnKeyDown na DBGrid izbacuje gresku kod koda:
if (Key = VK_UP) then...
Tako da problem i dalje stoji.
Re: Dogadjaj DBGrid kod pritiska na kursore 28.09.2005. u 14:05 · pre 256 meseci #5
Koju gresku ti izbacuje kod tog koda?

Zasto ti je tako bitno da znas kad je taster pritisnut? Ako ti treba koji je trenutni aktivni rec. u tabeli ili query koristis AfterScroll event Query-a ili Tabele, ili OnDataChange DataSet komponente.
Potpis
Play Store
Re: Dogadjaj DBGrid kod pritiska na kursore 28.09.2005. u 14:59 · pre 256 meseci #6
Code:

procedure TfrmReklamacije.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_UP) then
     MessageDlg(Key + ' gore pritisnuto', mtInformation, [mbOK], 0);
end;

[Error] Reklamacije.pas(649): Incompatible types: 'String' and 'Word'

Dakle, na obrascu imam DBEdit za prikaz broja dana reklamacije i DBGrid za prikaz cele tabele reklamacija. Ako je broj dana npr.>45 on treba da pocrveni.
Na DBgrid na OnCellClick sam dodao proveru i sve lepo funkcionise, dakle kada se kursorom misa pomerite na bilo koji zapis, provera funkcionise, ali kada pomeranje na tabeli DBGrid vrsim sa kursorskim tasterima gore-dole, onda ovo nema efekta tj. nema provere.

Re: Dogadjaj DBGrid kod pritiska na kursore 28.09.2005. u 15:30 · pre 256 meseci #7
Code:
procedure TfrmReklamacije.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_UP) then
     MessageDlg(IntToStr(Key) + ' gore pritisnuto', mtInformation, [mbOK], 0);
end;

Ovaj kod ce da radi.

Zasto ne koristis OnDataChange? Ako je polje koje oznacava datum promenjeno desice se ovaj event i samo provaris trenutnu vrednos polja u kojem je datum i odredis da li treba da se crta crveno ili ne.
Potpis
Play Store
Re: Dogadjaj DBGrid kod pritiska na kursore 29.09.2005. u 08:05 · pre 256 meseci #8
Hvala Srdjene na tvojoj upornosti, bio si u pravu, prethodni kod sada radi. Prevideo sam IntToStr(Key). Ostaje jos samo da umesto poruke dodam proveru vrednosti i promenu boje.
Vec koristim OnDataChange na DBEdit polju, ali to nije dovoljno, jer pomeranje to tabeli na istom obrascu menja i tekuci zapis, tako da kontrolu vrednosti i boja treba osveziti. To je razlog sto sam insistirao na proveri kursora dole-gore.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme