AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Aufgerufene Methode erkennt aufrufendes Objekt nicht.
Thema durchsuchen
Ansicht
Themen-Optionen

Aufgerufene Methode erkennt aufrufendes Objekt nicht.

Ein Thema von FriendOfDelphi · begonnen am 25. Nov 2010 · letzter Beitrag vom 1. Dez 2010
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#11

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 25. Nov 2010, 20:30
Den Parent als Parameter mitgeben meinte ich wenn der Owner ein Wincontrol ist kannst Du auch parent=Owner setzen.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#12

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 25. Nov 2010, 20:53
Den Parent als Parameter mitgeben meinte ich wenn der Owner ein Wincontrol ist kannst Du auch parent=Owner setzen.
Kannst Du bitte mal ein Stück Beispielcode schreiben, wie Du das meinst.
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#13

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 25. Nov 2010, 21:07
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#14

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 10:58
Delphi-Quellcode:
constructor TMyClass.Create(AOwner: TComponent);
begin
  inherited;
  if AOwner is TWincontrol then Parent := TWincontrol(AOwner);
  //...
end;
Ich habe zwar noch nicht verstanden warum, aber so funktioniert es.

Delphi-Quellcode:
constructor TMyClass.CreateWithParent(AOwner: TComponent; AParent: TWinControl);
begin
  inherited Create(AOwner);
  Parent := AParent;
  //...
end;
So funktioniert es (noch) nicht.
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.
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#15

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 11:04
Du hattest ihn doch schon drin ??

Delphi-Quellcode:
    procedure AdsOpen();
    procedure AdsClose();
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
ich hoffe es hängt nicht an MyClass .....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#16

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 11:23
Du hattest ihn doch schon drin ??

Delphi-Quellcode:
    procedure AdsOpen();
    procedure AdsClose();
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
ich hoffe es hängt nicht an MyClass .....
Richtig. Der erste Lösungsvorschlag hat ja auch funktioniert.
Den zweiten Lösungsvorschlag habe ich dann auch ausprobiert und den Konstruktor entsprechend geändert:
Delphi-Quellcode:
// constructor Create(AOwner: TComponent); override;
    constructor Create(AOwner: TComponent; AParent: TWinControl); override;
Und dann kam die Fehlermeldung.
Aber so langsam fällt der Groschen.
In der zweiten Lösung hattest Du den Konstruktor ja anders genannt und wohl aus gutem Grund. constructor TMyClass.CreateWithParent(AOwner: TComponent; AParent: TWinControl); Ich habe meinen ursprünglichen Namen verwendet. Wahrscheinlich hängt es damit zusammen, richtig?
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?
Herzlichen Gruß
FriendOfDelphi

Geändert von FriendOfDelphi (26. Nov 2010 um 12:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#17

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 12:10
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;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#18

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 13:52
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;
Vielen Dank für den ausfürlichen Beispielcode.

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?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#19

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 14:29
jetzt habe ich einen Hänger...
was genau meinst Du?
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 14:30
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?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:36 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