AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener Klasse OnClickEvent zuweisen

Ein Thema von Andreas L. · begonnen am 10. Mai 2007 · letzter Beitrag vom 10. Mai 2007
Antwort Antwort
Andreas L.
(Gast)

n/a Beiträge
 
#1

Eigener Klasse OnClickEvent zuweisen

  Alt 10. Mai 2007, 14:23
Hi,
ich habe jetzt auf meinen Panels welche in der ScrollBox erzeugt werden (siehe http://www.delphipraxis.net/internal...t.php?t=109550 ) Labels erstellt. Diesen möchte ich ein onClick-Event geben. Jedoch muss der Entwickler, welcher die Klasse benutzt dort eigenen Code hinterlegen können. Also dachte ich mir, dass ich ein property erstelle nach diesem Schema:

In der Anwendung welche die Klasse benutzt:
Delphi-Quellcode:
procedure SomeComponentOnClick(Sender: TObject);
begin

 ShowMessage('Du hast mich geklickt!');

end;

//beim initalisieren der Klasse bzw. erstellen der Items
MeineKlasse.LabelOnclick := SomeComponentOnClick;
Nicht jedes Label auf den Panels soll ein eigenes onClick erhalten, sondern alle das selbe.

Doch wie realisiere ich das?

Ich habe in die DelphiHilfe geschaut und mit den Artikel bei "property" folgendes gebaut, will aber nicht klappen:

property LabelonClick: TNotifyEvent read TNotifyEvent write TNotifyEvent; Doch ich glaube das ist der falsche Ansatz. Wie soll ich das ganze umsetzen?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Eigener Klasse OnClickEvent zuweisen

  Alt 10. Mai 2007, 14:43
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:
property OnLabelClick:TNotifyEvent read FOnLabelClick write SetLabelClick; In SetLabelClick musst du nur noch das OnClick aller Labels sowie FOnLabelClick durch den Parameter ersetzen.
Hoffe geholfen zu haben
Apollonius
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: Eigener Klasse OnClickEvent zuweisen

  Alt 10. Mai 2007, 14:56
Danke für deine Antwort. Hab das versucht so umzusetzen:

Delphi-Quellcode:
...
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;
Dummerweise wird FOnEditClick sowie SetEditClick vom Compiler nicht erkannt. Ich denke ich habe mal wieder alles falsch gemacht.

Muss dazu aber sagen, dass ich nicht wirklich alles was du geschrieben hast, verstanden habe.
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Eigener Klasse OnClickEvent zuweisen

  Alt 10. Mai 2007, 15:00
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:
erstesedit.onClick:=Click;
zweitesEdit.onclick:=click;
...
Hoffe geholfen zu haben
Apollonius
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Eigener Klasse OnClickEvent zuweisen

  Alt 10. Mai 2007, 15:38
Hat geklappt. Vielen Dank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz