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
Benutzerbild von Bummi
Bummi

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

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 25. Nov 2010, 18:55
Gib mal dem Constructor versuchsweise den Parent mit, vielleicht passiert dort schon zuviel (etwas was einen Parent erfordert)....
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
 
#2

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 25. Nov 2010, 20:03
Gib mal dem Constructor versuchsweise den Parent mit, vielleicht passiert dort schon zuviel (etwas was einen Parent erfordert)....
Wenn ich das mache
Delphi-Quellcode:
constructor TNotifikationen.Create;
begin
  Parent := self;
  AdsOpen();
  inherited; //inherited ruft die gleichnamige Methode der Vorfahrklasse auf
end;
erhalte ich folgende Fehlermeldung:
"Im Projekt Soundso.exe ist eine Exception der Klasse EInvalidOperation aufgetreten. Meldung: 'Ein Steuerelement kann nicht sich selbst als Vorfahr haben'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen."
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
 
#3

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
 
#4

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
 
#5

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
 
#6

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
 
#7

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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 14:41
Logisch. Self ist ja auch die Referenz auf die Klasse selber.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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
 
#9

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 26. Nov 2010, 14:58
Alle Klassen die von TComponent abgeleitet sind benötigen einen Owner, also jemanden der sie auch wieder freigibt.
Du kannst hier nil übergeben, mußt dann aber die Komonente selbst wieder freigeben.

Alle Klassen die von TControl abgeleitet sind benötigen einen Parent da sie irgendwo "gemalt werden müssen".

Wenn Dich die Herkunft einer einer Klasse interessiert kannst Du Dich per Klick auf die Deklaration bei gedrückter STRG-Taste durch die Hirarchie hangeln

Button:TButton Mausklick +STRG auf TButton
>>TButton = class(TCustomButton) Mausklick +STRG auf TCustomButton
>>TButtonControl>>TWinControl>>TControl>>TComponen t
>>class(TPersistent, IInterface, IInterfaceComponentReference)
>>TObject
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
 
#10

AW: Aufgerufene Methode erkennt aufrufendes Objekt nicht.

  Alt 1. Dez 2010, 14:50
Da die grundlegende Frage dieses Themas ja beantwortet ist, möchte ich diesen Thread als beantwortete Frage abschließen.
Vielleicht kann jemand ja noch einmal einen Link mit einem Tutorial posten, in welchem die Themen "TComponent", "TWinControl" und deren Zusammenhänge grundsätzlich erklärt werden.
Herzlichen Gruß
FriendOfDelphi
  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 04:31 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 by Thomas Breitkreuz