Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Objektereignisse bei abgeleiteten Klassen (https://www.delphipraxis.net/187890-objektereignisse-bei-abgeleiteten-klassen.html)

mkinzler 15. Jan 2016 05:29

AW: Objektereignisse bei abgeleiteten Klassen
 
Was meinst Du mit aufrufen? Was soll aufgerufen werden?

Delphi-Quellcode:
var
  ed1: TEditExt;
..

ed1 := TEditExt.Create( self);
ed1.Parent := Self;
ed1.onChange := <Methode welche beim Ereignis aufgerufen werden soll>;

bytecook 15. Jan 2016 10:54

AW: Objektereignisse bei abgeleiteten Klassen
 
Zitat:

Zitat von Jean312 (Beitrag 1327095)
Wie kann ich aber das OnChange-Ereignis für diese abgeleitete Komponente nutzen? OnChange ist doch von der übergeordneten Klasse TEdit mit vererbt worden?

Suche nach der Routine, die das OnChange Event aufruft. In diesem Falle wird dies von der Prozedur Change, deklariert im TCustomEdit vorgenommen.

Code:
Deklaration:

procedure Change; dynamic;

Implementation:

procedure TCustomEdit.Change;
begin
  inherited Changed;
  if Assigned(FOnChange) then FOnChange(Self);
end;
Willst Du nun diese Routine weiterverwenden, so deklarierst du die Routine in deiner Komponente nochmals wie folgt:


Code:
Deklaration

procedure TEditExt.Change; Override;

Implementation

procedure TEditExt.Change;
begin
  // Hier deine Befehle, wenn die VOR dem alten OnChange erfolgen sollen,

  inherited Changed;

  // Ansonsten hier....
end;

HTH und Gruß,

Peter

Mavarik 15. Jan 2016 11:08

AW: Objektereignisse bei abgeleiteten Klassen
 
Zitat:

Zitat von Jean312 (Beitrag 1327057)
Es geht hier ganz speziell um das OnChange-Ereignis. Die Komponente ist nicht im OI. Die abgeleitete Komponente ist über eine eigene Unit eingebunden.

Daher wäre es hilfreich, wenn Du die Antworten auch lesen würdest...

Da Du Deine abgeleitete Komponente nicht als Komponente in der IDE registriert hast, musst Du natürlich alles was Du sonst im OI einstellst auch zur Laufzeit selber machen. Natürlich kannst Du bei OOP auf "alle" Methoden des Vorfahren zurück greifen...

Daher must Du die Property selber zuweisen... (Siehe die gegebenen Antworten "OnChange := MyOnChange;" oder so)

Mavarik

mkinzler 15. Jan 2016 11:58

AW: Objektereignisse bei abgeleiteten Klassen
 
Und für dynamisch erzeugte Komponenten fällt der OI natürlich sowieso flach.

Jean312 15. Jan 2016 13:52

AW: Objektereignisse bei abgeleiteten Klassen
 
Jetzt kommt für mich Licht ins Dunkel.
Das war eben das, was mir nicht klar war. Ich war davon ausgegangen, dass alle Eigenschaften, Events etc. "normal" zur Verfügung stehen. Aber dadurch, dass ich die Komponente nicht installiert habe, stehen mir also diese Sachen so nicht zur Verfügung.

Ich danke für die Erklärungen.

Mavarik 15. Jan 2016 13:56

AW: Objektereignisse bei abgeleiteten Klassen
 
Zitat:

Zitat von Jean312 (Beitrag 1327154)
Das war eben das, was mir nicht klar war. Ich war davon ausgegangen, dass alle Eigenschaften, Events etc. "normal" zur Verfügung stehen. Aber dadurch, dass ich die Komponente nicht installiert habe, stehen mir also diese Sachen so nicht zur Verfügung.

Selbstverständlich steht Dir alles zur Verfügung... Du must es nur nutzen!

Jean312 15. Jan 2016 14:21

AW: Objektereignisse bei abgeleiteten Klassen
 
Sorry, war ein bisschen blöd formuliert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Seite 2 von 2     12   

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