Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Klassen-Querverweise (https://www.delphipraxis.net/13541-klassen-querverweise.html)

Dax 9. Jun 2005 19:27

Re: Klassen-Querverweise
 
Zirkuläre Referenz. Der Compiler knallt dir das ins Gesicht und verabschiedet sich ;)

nailor 9. Jun 2005 19:32

Re: Klassen-Querverweise
 
Und wenn ich das aber so haben will?

Dax 9. Jun 2005 19:33

Re: Klassen-Querverweise
 
Wollen :roll: Du darfst nicht, das ist definiert ;) Versuch mal das zu kompilieren, wie du auch tust, es wird nicht gehen ^^ Gänge es, würde sich der Compiler in einer Endlosschleife verfangen.

r2c2 9. Jun 2005 19:50

Re: Klassen-Querverweise
 
Es gibt noch zwei - nicht besonders schöne, aber dennoch funktionierende Möglichkeiten:

- TypeCasts:
Delphi-Quellcode:
Parent: TObject;

implementation

uses
  ParenTUnit;

procedure DoSomething;
begin
  (Parent as TParent).Irgendwas := 0;
end;
- über ne (globale) Variable auf die anderen Klassen zugreifen:

Delphi-Quellcode:
unit Main_class

MainClass = class(TObject)
private
  FParent: TParent;
  FChild: TChild;
public
  <entsprechende properties>;
...



unit MainForm_U;

var
  Form1: Form1;
  MainClass: TMainClass;



unit Child_class

TParent = class(TObject)
...
procedure DoSomething;
begin
  MainClass.Parent.Irgendwas := 0;
end;
Letzterses funktioniert aber nur, wenn du nur eine Instanz deiner Referenzierten Klasse hast. Alles andere wird mit der Zeit unübersichtlich.

mfg

Christian

nailor 9. Jun 2005 20:40

Re: Klassen-Querverweise
 
das erstere (mit dem Typecast) sieht zwar schrecklich aus und zerbricht das saubere Konzept, aber es wird wohl das einfachste sein.

Zitat:

Zitat von Dax
Wollen :roll: Du darfst nicht, das ist definiert ;) Versuch mal das zu kompilieren, wie du auch tust, es wird nicht gehen ^^ Gänge es, würde sich der Compiler in einer Endlosschleife verfangen.

eben deshalb frage ich ja, WIE ich es machen kann.

Robert_G 9. Jun 2005 20:56

Re: Klassen-Querverweise
 
Zitat:

Zitat von nailor
eben deshalb frage ich ja, WIE ich es machen kann.

Ich habe oben ein Beispiel angeboten, keine Ahnung warum du lieber nzig-mal fragst anstatt einmal zu lesen... :gruebel:

btw: Das Beispiel in dem anderen Thread hat anscheinend einen Bug im D2005 Komposter gefunbden. :mrgreen:

nailor 9. Jun 2005 21:00

Re: Klassen-Querverweise
 
irgendwo hast du recht. aber andererseits ist es auch wieder sau kompliziert!

Robert_G 9. Jun 2005 21:04

Re: Klassen-Querverweise
 
Zitat:

Zitat von nailor
irgendwo hast du recht. aber andererseits ist es auch wieder sau kompliziert!

Dann stelle spezifische Fragen, vielleicht kommen sogar spezifische Antworten. ;)

nailor 9. Jun 2005 21:08

Re: Klassen-Querverweise
 
ich werde jetzt erstmal testen, ob es nicht reicht, die variable im interface als TObject zu deklarieren und dann in der implementation auf den jeweiligen objekttyp zu casten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr.
Seite 2 von 2     12   

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