Ik heb een component die van TDBGrid is afgeleid, en ik wil de OnKeyDown overschrijven met ene eigen event. Na mijn eigen code in de OnKeyDown doe ik uiteraard een inherited. Werkt allemaal perfect.
Maar het probleem is dat als de Grid in editor mode zit (dus men kan typen in een cel) dat hij dan die event in mijn component niet uitvoert. De OnKeyDown wordt dan wel uitgevoerd in het uiteindelijk component op de form, hoe kan dit?
Code:
Overschrijven van de procedure in TMyDBGrid:
Nieuwe procedure in TMyDBGrid:
En op het formulier:
Iemand weet hoe dit kan en op te lossen is?
Maar het probleem is dat als de Grid in editor mode zit (dus men kan typen in een cel) dat hij dan die event in mijn component niet uitvoert. De OnKeyDown wordt dan wel uitgevoerd in het uiteindelijk component op de form, hoe kan dit?
Code:
Overschrijven van de procedure in TMyDBGrid:
code:
1
| procedure KeyDown(var Key: Word; Shift: TShiftState); override; |
Nieuwe procedure in TMyDBGrid:
code:
1
2
3
4
5
6
| procedure TMyDBGrid.KeyDown(var Key: Word; Shift: TShiftState); begin //hier wat code die moet worden uitgevoerd bij een aantal toetsen. //Deze wordt uitgevoerd zolang de Grid NIET in editor mode zit. inherited; end; |
En op het formulier:
code:
1
2
3
4
5
6
| procedure TForm1.MyDBGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin //Deze code wordt ALTIJD uitgevoerd, //ook al zit de Grid in editor mode. :? end; |
Iemand weet hoe dit kan en op te lossen is?
"The shell stopped unexpectedly and Explorer.exe was restarted."