[ yiwan @ 12.08.2008. 12:47 ] @
| Pravim aplikaciju koja izmedju ostalog na formi ima TDBgrid, TEdit i par dugmica...
Fokus je uglavnom na TDBgridu tj. na TEditu ciji onChange aktivira pretragu i nalazi odgovarajucu vrstu u gridu.
Hteo bi da kad stisnem neku kombinaciju tastera (sa Ctrl, Alt i sl.) pozovem Onclick od nekog dugmeta i tako izbegnem upotrebu misa.
Probao sam na vise i nacina i sledeci su problemi:
- ako koristim akcelerator (&) kod dugmeta, on se aktivira i bez upotrebe Alt, sto mi onemogucava pretragu (jer je fokus na Tedit koji ocekuje unos)
- ako koristim neto tipa:
Code: if (Key = Ord('N')) and (ssCtrl in Shift) then begin
Key := 0;
NoviBtnClick(self);
end;
onda reaguje na kombinaciju, ali i udje u obradu onChange od TEdit (nece da ignorise taj pritisak tastera).
Gde gresim i ima li neko mozda neki bolji predlog da ovo izvedem?
P.S. mora biti podrzano u Delphi5 tako da Akcije i nesto slicno otpada... |
[ savkic @ 12.08.2008. 14:16 ] @
> Hteo bi da kad stisnem neku kombinaciju tastera (sa Ctrl, Alt i sl.) pozovem Onclick od nekog dugmeta i tako izbegnem upotrebu misa.
> gde gresim i ima li neko mozda neki bolji predlog da ovo izvedem?
> P.S. mora biti podrzano u Delphi5 tako da Akcije i nesto slicno otpada...
Shortcutovi su prirodan način da se to reši, bilo da ćeš koristiti OnShortcut na Formi ili TAction (koji postoji u D5). Najlakše ti je da ubaciš novi TAction, dodeliš shortcutove koji ti trebaju, ubaciš kod i povežeš button sa njim.
[ franjo_tahi @ 12.08.2008. 21:13 ] @
Postoji i drugo rješenje:
1. formi na kojoj radiš postavi property u obj. insp.
KeyPreview := true;
2. kreiraj proceduru OnKeyUp npr:
procedure Form1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key = 65) then // 65 = a illi A
Botton1.OnKeyPress; // Poziv procedure gumba
end;
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.