Objektorientierte Programierung - Objekt in methode.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Objektorientierte Programierung - Objekt in methode.

Beitrag von MAC »

So, das Problem das ich habe ist ziemlich schwer zu beschreiben.
Ich zeig einfach mal einen Einfachen Code - und erweiter den dann so dass das problem aufkommt.

Wir brauchen eigentlich nicht viel nur eine basisklasseN

Code: Alles auswählen

TTest = class
x:integer;
y:integer;
public 
procedure machwas;
end;
 
procedure TTest.machwas;
begin
x := y;
end;
 
Button1.Click:
var
  meintest:TTest;
begin
meintest := TTest.Create;
meintest.machwas;
end;
So, das ist der einfache Code wo es keine schwirigkeiten gibt.
Das problem was ich habe ist in machwas.
Es ist klar welchesy gemeint ist bei x := y, nähmlich das y was zu der klasse TTest gehört.
Wenn ich jetzt aber nicht y habe sondern die Instanz an sich meine, also einen Pointer erwarte auf meintest. Was muss ich dann ändern.

Code: Alles auswählen

TTest = class
parent:TTest;  // wurde geändert !
public 
procedure machwas;
end;
 
procedure TTest.machwas;
var
  zweig:TTest; // wurde geändert !
begin
zweig := TTest.Create; // wurde geändert !
zweig.parent := ????? // wurde geändert !
end;
 
//Button1.Click bleibt...
Ich moche also in der Prodcedure machwas eine verkettung erstellen und dem 2ten Objekt gerne sagen wer sein Vater ( Wie das Objekt heißt von dem die Procedure machwas aufgerufen wurde ist = meintest )ist. Nur weis ich nicht wie ich das jetzt nennen soll...

Danke

Code: Alles auswählen

Signatur := nil;

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Objektorientierte Programierung - Objekt in methode.

Beitrag von pluto »

Self heißt das Zauberwort.
Du musst den Parent auf Self setzten. Self ist ein Interner Bezeichner der in jeder Klasse zuverfügung steht.
MFG
Michael Springwald

Eclipticon
Beiträge: 292
Registriert: Sa 5. Feb 2011, 20:38
OS, Lazarus, FPC: Windows XP VirtualBox (FPC 2.6.4, Laz 1.2.4)
CPU-Target: 32Bit
Wohnort: Wien

Re: Objektorientierte Programierung - Objekt in methode.

Beitrag von Eclipticon »

Self?

(Edit: 60 Sekunden zu spaet auf "Absenden" geklickt ;-) )

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Objektorientierte Programierung - Objekt in methode.

Beitrag von MAC »

danke
wieder was gelernt...

Code: Alles auswählen

Signatur := nil;

Antworten