![]() |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Den Parent als Parameter mitgeben meinte ich wenn der Owner ein Wincontrol ist kannst Du auch parent=Owner setzen.
|
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Zitat:
|
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Delphi-Quellcode:
constructor TMyClass.Create(AOwner: TComponent);
begin inherited; if AOwner is TWincontrol then Parent := TWincontrol(AOwner); //... end; constructor TMyClass.CreateWithParent(AOwner: TComponent; AParent: TWinControl); begin inherited Create(AOwner); Parent := AParent; //... end; |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Zitat:
Zitat:
Wenn ich den Konstruktor so im Deklarationsteil der Klasse hinschreibe, meldet der Kompiler folgende Fehlermeldung: "Deklaration von 'Create' unterscheidet sich von vorheriger Deklaration". Könntest Du bitte auch noch etwas erläutern, wie der beschriebene Code funktioniert, damit ich das verstehe und nachvollziehen kann. :?: Schon mal vielen Dank. |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Du hattest ihn doch schon drin ??
Delphi-Quellcode:
ich hoffe es hängt nicht an MyClass .....
procedure AdsOpen();
procedure AdsClose(); public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; destructor Destroy; override; |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Zitat:
Den zweiten Lösungsvorschlag habe ich dann auch ausprobiert und den Konstruktor entsprechend geändert:
Delphi-Quellcode:
Und dann kam die Fehlermeldung.
// constructor Create(AOwner: TComponent); override;
constructor Create(AOwner: TComponent; AParent: TWinControl); override; Aber so langsam fällt der Groschen. In der zweiten Lösung hattest Du den Konstruktor ja anders genannt und wohl aus gutem Grund.
Delphi-Quellcode:
Ich habe meinen ursprünglichen Namen verwendet. Wahrscheinlich hängt es damit zusammen, richtig?
constructor TMyClass.CreateWithParent(AOwner: TComponent; AParent: TWinControl);
Kann man dem eigenen Konstruktor nur soviele Parameter übergeben, wie der Konstruktor der Basisklasse hat? Soweit ich weiß, müßte das doch gehen. Wie macht man das in diesem Fall? |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Du kannst den Konstruktor wie jede Prozedur auch Überladen
Delphi-Quellcode:
TMyClass=Class(TButton)
Constructor Create(Aowner:TComponent;AParent:TWinControl);overload; End; //____________ constructor TMyClass.Create(Aowner: TComponent; AParent: TWinControl); begin inherited Create(AOwner); Parent := AParent; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin with TMyClass.Create(self) do begin left := 100; Parent := Self; end; with TMyClass.Create(self,self) do begin left := 200; end; end; |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Zitat:
Wäre es möglich die Funktionalität des Codes noch etwas zu erläutern, damit ich das nachhaltig verstehen und nachvollziehen kann? :?: Wie und warum müssen zum Beispiel die Aufrufparameter "Aowner:TComponent, AParent:TWinControl und AOwner" so gewählt werden? :?: |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
jetzt habe ich einen Hänger...
was genau meinst Du? |
AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Die Parameter kannst Du eigentlich nach Deinem Bedarf definieren (wie bei jeder anderen Funktion). Du musst halt überlegen, welche Parameter Du für Deine Zwecke benötigst.
Oder was meinst Du sonst genau? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 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