Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Methodenaufruf und Klassen (https://www.delphipraxis.net/130652-methodenaufruf-und-klassen.html)

MaToBe 11. Mär 2009 18:41


Methodenaufruf und Klassen
 
Hey

ich hänge gerade wahrscheinlich an einem ziemlich doofen Problem:

Delphi-Quellcode:
procedure TBinBaum.einfuegen (Schluessel: string; Daten: integer);
var neuerKnoten, AktKnoten : TKnoten;
begin
  if not vorhanden(Schluessel, AktKnoten) then
  begin
    neuerKnoten := TKnoten.create(Schluessel, Daten);
da sagt er mir in der letzen Zeile:
"Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt"

Ich habe eine Klasse TBinBaum die die Klasse TKnoten used.

MFG

sirius 11. Mär 2009 18:52

Re: Methodenaufruf und Klassen
 
Und die Klasse TKnoten mus einen Constructor namesn Create haben. Das scheint hier nicht der Fall.

MaToBe 11. Mär 2009 18:54

Re: Methodenaufruf und Klassen
 
doch hat sie:

Delphi-Quellcode:
type
  TKnoten = class

  public //Attribute
    Daten : integer;
    Schluessel : string;
    links : TKnoten;
    rechts : TKnoten;

  public //Methoden
    procedure create (S: string; D: integer); virtual;

   end;

implementation

//+---------------------------------------------------------------------
//|         TKnoten: Methodendefinition
//+---------------------------------------------------------------------

//-------- create (public) ---------------------------------------------
procedure TKnoten.create (S: string; D: integer);
begin
  Daten := D;
  Schluessel := S;
end;
<= Klasse TKnoten

Edit: Ahh verdammt jetzt seh ichs auch da steht ja "Procedure" und nicht "Constructor"
sorry :oops:

DeddyH 11. Mär 2009 18:55

Re: Methodenaufruf und Klassen
 
Wieso procedure und nicht constructor?

[edit] :lol: Hätte ich mir den Post sparen können [/edit]

schöni 12. Mär 2009 09:06

Re: Methodenaufruf und Klassen
 
Hallo,

ich hatte kürzlich nen ähnlich doofen Fehler:

Create Konstruktor überschrieben. -> diesen aufgerufen -> EAccessviolation!

Quelltext genauer angeguckt!?!

Ursache: Ich hatte den geerbten Konstruktor nicht aufgerufen!

sirius 12. Mär 2009 09:10

Re: Methodenaufruf und Klassen
 
Zitat:

Zitat von schöni
Ursache: Ich hatte den geerbten Konstruktor nicht aufgerufen!

Wenn in dem geerbten Konstruktor irgendwelche geerbeten Felder nicht initialisert werden, wird es wohl dazu kommen müssen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 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