Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigenschaft existiert nicht (https://www.delphipraxis.net/29414-eigenschaft-existiert-nicht.html)

Meta777 8. Sep 2004 22:46


Eigenschaft existiert nicht
 
Hallo,

vorweg will ich erstmal sagen das der bereits vorhandene Thread mit den gleichen Titel nichts mit mein Problem zu tun hat, glaub ich jedenfalls... :roteyes:

Mein Problem ist:

Ich habe nen Komponente DAMediaPlayer (von TMediaPlayer abgeleitet) die die Eigenschaft "DATrackBar" hat welche eine von TTrackBar abgeleitete Komponente ist.
Und die Komponente DATrackBar hat eine Eigenschaft "DAMediaPlayer" .

Ich will, wie z.B. bei TIBDataBase und TIBTransaction (DefaultTransaction und DefaultDatabase), beide mit einander verknüpfen.
In der IDE klappt das auch ohne Probleme. Nur wenn ich kompiliere erhalte ich die Fehlermeldung das die Eigenschaft DAMediaPlayer der DATrackBar nicht existiert, wahrscheinlich weil DATrackBar vor DAMediaPlayer kompiliert wird.

Bei erwähnten Beispiel (DB + Transaction) wird das scheinbar über ne TList gemanaged aber da steig ich nit durch.

Kann mir jemand sagen wie mein Problem prizipiell zu Lösen ist oder gar nen ausfürliches einfaches Beispiel?

Danke im Voraus!
Gottes Segen

Dax 9. Sep 2004 06:25

Re: Eigenschaft existiert nicht
 
Du willst zirkuläre Referenzen?
Das wird NIE klappen. Wenn ein Objekt ein anderes verlinkt, welches als Eigenschaft das verlinkende Objekt mit sich verlinkt, das dan wieder verlinkt, ....

In der IDE geht das, weil die nicht ENDLOS verlinkt und weil die IDE mit Pre-Compilierten .dcu's arbeitet. Der Compiler hat sowas nicht und kennt daher eines der Objekte bevor es deklariert wurde, was in einer Fehlermeldung endet.

Jens Schumann 9. Sep 2004 06:58

Re: Eigenschaft existiert nicht
 
Hallo,
so ganz habe ich die Frage nicht verstanden. Aber evt ist folgender Code eine Hilfe:

Delphi-Quellcode:
TSecond = class; // ist etwas wie eine forward Deklaration

TFirst = class(TObject)
  public
  property Second : TSecond read FSecond write FSecond;
end;

TSecond = class(TObject)
  public
  property First: TFirst read FFirst write FFirst ;
end;
TFirst kennt TSecond und TSecond kennt TFirst.

Meta777 10. Sep 2004 14:54

Re: Eigenschaft existiert nicht
 
Danke für die Antworten
das Problem hat sich erledigt. Ich hatte einfach ne alte version der einen Komponente in der Uses mit drinne...

@Jens: so hab ich und es funzt gut :cheers:


Be blessed!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:57 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-2025 by Thomas Breitkreuz