OK, jetzt habe ich auch ein KeyDownEvent, aber es funktioniert nicht alleine, da ich das Image ja nicht 'markieren' kann.
Wie kriege ich das aktiv, damit bei einem Tastendruck meine KeyDown Pozedure aufgerufen wird?
Delphi-Quellcode:
unit Sli;
{
StringListImage
Grafische Ausgabe einer Stringlist
(eine Art bessere Listbox)
type
TSliKeyDownEvent = procedure (Sender: TObject; var Key: Word;
Shift: TShiftState) of object;
type
TSliEnterEvent = procedure (Sender: TObject) of object;
type
TSli = class(TImage)
private
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
FOnkeyDown: TSliKeyDownEvent;
FOnEnter: TSliEnterEvent;
procedure KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
procedure Enter(Sender: TObject) ;
public
{ Public-Deklarationen }
constructor Create(AOwner:TImage);
published
{ Published-Deklarationen }
property OnKeyDown : TSliKeyDownEvent
read FOnKeyDown
write FOnKeyDown;
property OnEnter : TSliEnterEvent
read FOnEnter
write FOnEnter;
end;
procedure Register;
implementation
...
procedure TSli.KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
inherited;
If Assigned(FOnKeyDown)
then
FOnKeyDown(self, Key, Shift);
end;
procedure TSli.Enter(Sender: TObject);
begin
inherited;
If Assigned(FOnEnter)
then
FOnEnter(self);
end;
Meine OnEnterEvent - Vererbungsversuche (von einer Listbox halt abgeschaut) bringen mich nicht weiter.