![]() |
Eigener Klasse OnClickEvent zuweisen
Hi,
ich habe jetzt auf meinen Panels welche in der ScrollBox erzeugt werden (siehe ![]() In der Anwendung welche die Klasse benutzt:
Delphi-Quellcode:
Nicht jedes Label auf den Panels soll ein eigenes onClick erhalten, sondern alle das selbe.
procedure SomeComponentOnClick(Sender: TObject);
begin ShowMessage('Du hast mich geklickt!'); end; //beim initalisieren der Klasse bzw. erstellen der Items MeineKlasse.LabelOnclick := SomeComponentOnClick; Doch wie realisiere ich das? Ich habe in die DelphiHilfe geschaut und mit den Artikel bei "property" folgendes gebaut, will aber nicht klappen:
Delphi-Quellcode:
Doch ich glaube das ist der falsche Ansatz. Wie soll ich das ganze umsetzen?
property LabelonClick: TNotifyEvent read TNotifyEvent write TNotifyEvent;
|
Re: Eigener Klasse OnClickEvent zuweisen
Du musst eine private Variable vom Typ TNotifyEvent erstellen (z.B. FOnLabelClick). Außerdem eine Prozedur (protected) namens SetLabelClick mit einem Parameter vom Typ TNotifyEvent. LabelOnClick deklarierst du dann so:
Delphi-Quellcode:
In SetLabelClick musst du nur noch das OnClick aller Labels sowie FOnLabelClick durch den Parameter ersetzen.
property OnLabelClick:TNotifyEvent read FOnLabelClick write SetLabelClick;
Hoffe geholfen zu haben Apollonius |
Re: Eigener Klasse OnClickEvent zuweisen
Danke für deine Antwort. Hab das versucht so umzusetzen:
Delphi-Quellcode:
Dummerweise wird FOnEditClick sowie SetEditClick vom Compiler nicht erkannt. Ich denke ich habe mal wieder alles falsch gemacht. :freak:
...
type TElementList = class(TScrollBox) constructor Create(AOwner: TComponent); override; function Add(ElemType: TElementType; Content: String):Integer; procedure Refresh; procedure Move(OldPosition, NewPosition: Integer); function Count:Integer; property OnEditClick:TNotifyEvent read FOnEditClick write SetEditClick; protected procedure SetEditClick(Click: TNotifyEvent); private var FOnEditClick: TNotifyEvent; end; ... ... ... procedure TElementList.SetEditClick(Click: TNotifyEvent); begin FOnEditClick := Click; end; Muss dazu aber sagen, dass ich nicht wirklich alles was du geschrieben hast, verstanden habe. :wiejetzt: |
Re: Eigener Klasse OnClickEvent zuweisen
Ist eigentlich schon ganz in Ordnung. Aber erstelle ganz am Ende der neuen Klasse einen published-Block (meinetwegen auch public) mit dem Property, dann erkennt er auch SetEditClick und FOnEditClick.
In SetEditClick musst du auch noch das OnClick der einzelnen Edits (das sind doch Edits?) zuweisen, also
Delphi-Quellcode:
Hoffe geholfen zu haben
erstesedit.onClick:=Click;
zweitesEdit.onclick:=click; ... Apollonius |
Re: Eigener Klasse OnClickEvent zuweisen
Hat geklappt. Vielen Dank ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz