![]() |
Reihenfolge der Klassen / Untereinander bekannt machen?
Hiho.
bin jetzt neu in Delphi und hab folgendes Problem. Ich hab ein Programm das Daten aus einer Datenbank anzeigt. Das Ganze ist so gestaltet dass ich 1 Anforderungsfenster habe das x Datenfenster aufmacht. Jedes Datenfenster hat dabei 1 Fred der die Daten liest. Jetzt habe ich das Problem, dass das Datenfenster den Fred kennen muss (um ihn zu starten, abzufragen, etc) und der Thread muss das Datenfenster kennen (für die Darstellung). Wie bekomme ich das aber in der Deklaration hin, denn wenn ich erst den Thread und dann das Fenster definiere kennt der Fred logischerweise die Fensterklasse nicht und umgekehrt kennt das Fenster den Fred nicht. Sprich Variante/Fehler 1:
Delphi-Quellcode:
Variante / Fehler 2:
class TDataReader = class(TThread);
// ... public: display: TfrmData; // hier kennt er das Fenster logischerweise nicht class TfrmData = class(TForm); // ... private: dataReader: TDataReader;
Delphi-Quellcode:
class TfrmData = class(TForm);
// ... private: dataReader: TDataReader; // hier kennt er logischerweise den Fred nicht class TDataReader = class(TThread); // ... public: display: TfrmData; Ich habe versucht, das Problem zu umgehen indem ich im Fred "display" nicht als "TfrmData" sondern als Typ "TForm" deklariere. Dann wollte ich während der Verarbeitung das Ganze umparsen, aber dann bekomme ich die Fehlermeldung, TForm sei nich mit TfrmData kompatibel. Hat jemand eine Idee, wie ich das Problem lösen kann? Danke im Voraus cu Patrick |
Re: Reihenfolge der Klassen / Untereinander bekannt machen?
Du musst sogenannte Forwarddeklarationen machen.
Delphi-Quellcode:
TfrmData = class;
TDataReader = class; TDataReader = class(TThread); // ... public: display: TfrmData; // hier kennt er das Fenster logischerweise nicht end; TfrmData = class(TForm); // ... private: dataReader: TDataReader; end; |
Re: Reihenfolge der Klassen / Untereinander bekannt machen?
Delphi-Quellcode:
[Edit] Kleinen Fehler beseitigt, Mist da war einer schneller :stupid:
type
class TfrmData = class; class TDataReader = class(TThread); // ... public: display: TfrmData; // hier kennt er das Fenster logischerweise nicht end; class TfrmData = class(TForm); // ... private: dataReader: TDataReader; end; Stichwort dazu ist übrigens Vorwärtsdeklaration. |
Re: Reihenfolge der Klassen / Untereinander bekannt machen?
Ah kuhl, sowas in die Richtung konnt ich mir schon denken, kenn ich ja von C++.
Aber wusste halt nich wie das in Delphi geht. ^^ Danke für die schnelle Antwort. :) Patrick |
Re: Reihenfolge der Klassen / Untereinander bekannt machen?
Zitat:
|
Re: Reihenfolge der Klassen / Untereinander bekannt machen?
Habs vor deinem Post schon korrigiert, das muss ohne die Vererbung sein, bei der Vorwärtsdeklaration, dachte eigentlich ich habs schnell genug korrigiert, ehe es Schaden anrichtet. :wink:
Delphi-Quellcode:
TfrmData = class;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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 by Thomas Breitkreuz