Autor |
Beitrag |
ralfos
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 12.08.04 15:34
Hallo!
Wie ist es möglich, Daten zwisch 2 Klassen auszutauschen? Das Problem darin besteht, dass die eine Klasse ein Property besitz und in dessen write-Methode auf die Methode einer anderen Klasse zugegriffen werden muss, die allerdings diese Klasse als Typ selbst benötigt.
Gibt es so eine Art Vor-Deklaration von Klassen, so dass man in beiden Klassen auf die komplette Struktur der jeweils anderen zugreifen kann?
Vielen dank im Voraus
Ralf Moderiert von Klabautermann: Topic aus Sonstiges verschoben am Fr 13.08.2004 um 07:34
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 12.08.04 15:45
Hallo im  im Delphi-Forum!
Meinst du das? Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| type ClassB=class; ClassA=class(TObject); procedure Hallo; Class:ClassB; end; ClassB=class(TObject); procedure Hallo2; end; |
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ralfos 
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 12.08.04 19:29
Vielen dank erstmal!
Der Code ist leider nicht compilierbar, er bringt mir nur eine Fehlermeldung!
Wenn ich die beiden Classen in verschiedenen Units habe, ist sowas eventuell auch noch realisierbar, so einer art Header??
Danke
Ralf
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Do 12.08.04 19:33
ralfos hat folgendes geschrieben: | Der Code ist leider nicht compilierbar, er bringt mir nur eine Fehlermeldung! |
Das war ja auch nur ein Beispiel.
@maxk: Was hat das "Class:ClassB;" in der Klassendefinition von ClassA auf sich?
Gruß
Tino
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 12.08.04 19:40
Stimmt, erstens müsste es über der Prozedur stehen, zweitens würde Delphi den Namen "Class" nicht als Bezeichner zulassen, naja. Ich wollte damit symbolisieren, dass man ClassB benutzten kann - eben nur ein Beispiel 
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
ralfos 
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 12.08.04 21:47
Vielen Vielen Dank!!!!
Jetzt hat auch bei mir geklappt.
Gruß
|
|
ralfos 
Hält's aus hier
Beiträge: 5
|
Verfasst: Do 12.08.04 22:12
Habe noch ein kleines Problem!
Wenn ich nun die beiden Klassen in 2 Units ausgelagert habe und trotzdem jeweils von beiden auf beide zugreifen will, wie ist dies dann möglich?
Ralf
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 12.08.04 22:27
Indem du beide von einer Oberklasse ableitest.
Funktioniert aber nur, wenn du dies ohne Zyklische Abhängigkeiten implementierst, d.h. du darfst in mindestens einer Unit die andere nicht im Interface-Bereich referenzieren. Delphi wird dir aber in dem Fall einen entsprechenden Fehler ausgeben ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
ralfos 
Hält's aus hier
Beiträge: 5
|
Verfasst: Fr 13.08.04 07:26
Zitat: | Indem du beide von einer Oberklasse ableitest. |
Wenn ich das mache, hat die Oberklasse einen anderen Namen, wenn ich nun diesen in einer der beiden Klassen einbinde, dann hab ich nur die Eigenschaften der Oberklasse?! Oder wie hast du das gemeint?
|
|