Hi,
@HPW
Du verbirgst mit:
procedure KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);reintroduce;
die virtuelle Methode der Klasse TStringGrid bzw. TCustomGrid. Ohne dem reintroduse wird dir der Compiler das auch mitteilen. Das sollte man nur mit einem triftigen Grund tun.
Das Published Property (Ereignis) onKeyDown ist eine Schnittstelle für den Anwender der Komponente.
Du biegst den Zeiger dann von außen auf Methoden deiner Klasse um.
Wenn du im KeyDown immer etwas machen willst, dann überschreibe die Methode richtig und füge nach dem Inherited deinen Code ein (siehe: // und mache noch irgend was).
Genau so kannst du es mit den anderen Methoden machen.
Delphi-Quellcode:
procedure MyStringGrid.KeyDown(var Key: Word; Shift: TShiftState);
begin
inherited KeyDown(Key, Shift);
// und mache noch irgend was
// Sag: Hallo, ich hab den Fokus
end;
Du kannst ja in WMSetFocus ein Ereignis onGetFocus implementieren.
Gruß, Frank