Einzelnen Beitrag anzeigen

Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#5

Re: Doppelklick in Listbox "nachrüsten"

  Alt 18. Apr 2004, 12:14
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
  Mit Zitat antworten Zitat