Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponente erstellen und Ereignis zuweisen (https://www.delphipraxis.net/8746-komponente-erstellen-und-ereignis-zuweisen.html)

Stevie 11. Sep 2003 11:26


Komponente erstellen und Ereignis zuweisen
 
Hallo,

ich hab mir das Tutorial zum Erstellen einer Komponente schon durchgelesen, das schonmal vorweg! :D
Ich versuche nun verzeifelt eine Komponente zu erstellen und einem Ereignis eine Methode zuzuweisen. Wie mache ich das?

Nalincah 11. Sep 2003 11:34

Re: Komponente erstellen und Ereignis zuweisen
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  button :TButton;
begin
  button := TButton.Create(Form1);
  button.Parent := Form1;
  button.Caption := 'Test';
  button.Top := 100;
  button.Left := 100;
  button.OnClick := self.Button2Click
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ShowMessage('test');
end;

Stevie 11. Sep 2003 11:38

Re: Komponente erstellen und Ereignis zuweisen
 
Nein, nicht zu Laufzeit!!!
Ich will eine neue Komponente erstellen, die das macht.
Wie könnte ich jetzt zum Beispiel einen neuen Button erstellen, der immer, wenn ich draufklicke irgendwas macht??

Nalincah 11. Sep 2003 11:38

Re: Komponente erstellen und Ereignis zuweisen
 
Delphi-Quellcode:
  btn2 := TButton.Create(Form1);
  btn2.Parent := Form1;
  btn2.Caption := 'btn2';
  btn2.OnClick := button.OnClick;
Das unter die Zeile
Delphi-Quellcode:
button.OnClick := self.Button2Click;
schreiben. Deklaration nicht vergessen. Und der Btn2 führt das OnClick ereignis des buttons aus den du vorher erstellt hast

Nalincah 11. Sep 2003 11:39

Re: Komponente erstellen und Ereignis zuweisen
 
Ups..Sorry...Moment..Ich guck mal

Nalincah 11. Sep 2003 11:40

Re: Komponente erstellen und Ereignis zuweisen
 
Komponenten-Tutorial
Hoffe das hast du nicht schon gelesen. Das ist eigentlich ganz gut für den anfang

Stevie 11. Sep 2003 12:17

Re: Komponente erstellen und Ereignis zuweisen
 
Ok, gelesen. :D Wie weise ich jetzt einem Ereignis meiner abgeleiteten Komponente bereits im Konstruktor eine Routine zu?

Christian Seehase 11. Sep 2003 12:33

Re: Komponente erstellen und Ereignis zuweisen
 
Moin Stevie,

schau Dir doch noch mal Kapitel 6 des genannten Tutorials an.
Der Unterschied ist nur, dass Du keine published property daraus machst. Ein internes Feld genügt, und diesem weist Du dann eben die Routine zu.
Ist genau das gleiche, als würdest Du eine Kompo dynamisch erzeugen.

Stevie 11. Sep 2003 12:45

Re: Komponente erstellen und Ereignis zuweisen
 
1.) Wenn ich es doch published mache, und ein Benutzer dann im OI eine neue Routine dafür anlegt, wird dann meine "interne" überschrieben?
2.) Wenn ich ein bereits vorhandenes Ereignis mit einer Routine belege, müsste doch im OI dann doch was stehen, oder?
3.) Wenn ich als Eigenschaft der Vorgänger-Komponente eine Liste von Komponenten habe, ich im Konstruktor meiner Komponente einige Komponenten in diese Liste einfüge, kann ich dann auch so einfach diesen einzelnen Komponenten Ereignisroutinen zuweisen?

Christian Seehase 11. Sep 2003 12:55

Re: Komponente erstellen und Ereignis zuweisen
 
Moin Stevie,

1. Ja, aber Du könntest ja den Wert in der Eigenschaft mit dem Deiner internen Methode vergleichen. Sind die unterschiedlich wurde im OI eine Routine zugewiesen.
2. Weiss nich'. Probier's am Besten mal aus ;-)
3. Falls ich das richtig verstanden habe: Ja, warum nicht. (ggf. wäre vielleicht eine ausführlichere Erklärung nötig, was Du genau meinst)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz