Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Instanz der öffnenden Klasse herausfinden


HenryHux - So 30.01.11 10:00
Titel: Instanz der öffnenden Klasse herausfinden
Guten Morgen,

da mein eigenes Experimentieren und Googlen schon wieder lange beansprucht, meld ich mir hier mal.
Und zwar habe ich eine Klasse, in der Public Variablen vorhanden sind.
Diese Klasse soll eine andere Klasse aus einer anderen Unit aufrufen.
Nun müsste ich ja um von dort auf diese Variablen zugreifen zu können, die Instanz angeben.
Leider kann ich das aber nicht, da mir die Instanz ja nicht bekannt ist, die Klasse wird ja nur aufgerufen.
Beispiel :

Delphi-Quelltext
1:
2:
3:
4:
5:
var
    f : TMainThread; 
    d : boolean;
begin
  d := f.weitermachen;  //klappt


Delphi-Quelltext
1:
2:
3:
var d : boolean;
begin
  d := TMainThread.weitermachen; //Hier wird der Methodenbezeichner verlangt


Wie kann ich das umgehen?
Bin kurz davor ein record anzulegen, welches ich übergebe, das gefällt mir aber nicht ganz.

Lg


bummi - So 30.01.11 10:46

wenn Du nur eine Instanz von TMainthread hast d := f.weitermachen, ansonsten muß der anderen Klasse halt dir Instanz bekannt gemacht werden(in dem Fall f)


HenryHux - So 30.01.11 11:01

Ok, danke, ich dachte ich muss dafür erst eine Instanz erstellen.
Vieles hat sich sowieso geklärt nachdem ich nach nen paar Stunden auf den Gedanken gekommen bin, dass Vererben doch wundervoll ist :D

Danke LG


delfiphan - So 30.01.11 20:06

Wenn man eine (asynchron verarbeitende) Methode aufrufst und eine Rückmeldung will, macht man normalerweise einen Callback. Eine beidseitige Abhängigkeit ist nicht notwendig.