Hallo!
Ansich ist es ganz einfach, auf solche Windows-Nachrichten zu reagieren. Nehmen wir mal an, die Listbox-Komponente, von der Du ableiten möchtest, heißt "TYourListbox". Dann geht es folgendermaßen:
Delphi-Quellcode:
type TMyListbox = class(TYourListbox)
private
FOnDblClick : TNotifyEvent;
procedure DblClick(var message : TMessage); message WM_LBUTTONDBLCLK;
public
published
property OnDblClick : TNotifyEvent read FOnDblClick write FOnDblClick;
end;
{...}
implementation
{...}
procedure TMyListbox.DblClick(var message : TMessage);
begin
inherited;
{Hier kannst Du noch Standardbehandlungen rein machen, die immer ausgeführt werden,
unabhängig, welche Aktionen Du dem Ereignis einer Instanz dieser Klasse zuweist!}
if Assigned(FOnDblClick) then FOnDblClick(self);
end;
{...}
procedure TForm1.DblClick(Sender : TObject); //Das Ereignis, welches Du verwenden willst.
//Wie jedes andere auch.
begin
ShowMessage('Doppelklick');
end;
procedure TForm1.Button1Click(Sender : TObject);
var MyListbox : TMyListbox;
begin
MyListbox := TMyListbox.Create(form1); //oder sowas ... eben die Komponente zur Laufzeit erstellen
{...}
MyListbox.OnDblClick := DblClick;
end;
Hoffe, das hilft. (Habe es mit TYourListbox = TListbox probiert, da funtkioniert es.)
MfG
Peter
Christian S.
Admin in der Entwickler-Ecke