AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Reihenfolge der Klassen / Untereinander bekannt machen?
Thema durchsuchen
Ansicht
Themen-Optionen

Reihenfolge der Klassen / Untereinander bekannt machen?

Ein Thema von Errraddicator · begonnen am 26. Jun 2008 · letzter Beitrag vom 26. Jun 2008
Antwort Antwort
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#1

Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 13:18
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:
class TDataReader = class(TThread);
// ...
public:
  display: TfrmData; // hier kennt er das Fenster logischerweise nicht

class TfrmData = class(TForm);
// ...
private:
  dataReader: TDataReader;
Variante / Fehler 2:
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
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#2

Re: Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 13:23
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;
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#3

Re: Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 13:23
Delphi-Quellcode:
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;
[Edit] Kleinen Fehler beseitigt, Mist da war einer schneller
Stichwort dazu ist übrigens Vorwärtsdeklaration.
  Mit Zitat antworten Zitat
Errraddicator

Registriert seit: 26. Jun 2008
161 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 13:25
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
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#5

Re: Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 13:26
Zitat von Cyf:
Delphi-Quellcode:
type

  class TfrmData = class(TForm);

  class TDataReader = class(TThread);
  // ...
  public:
    display: TfrmData; // hier kennt er das Fenster logischerweise nicht
  end;

  class TfrmData = class(TForm);
  // ...
  private:
    dataReader: TDataReader;
  end;
Wat soll das bringen ausser nem Compiler-Error?
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#6

Re: Reihenfolge der Klassen / Untereinander bekannt machen?

  Alt 26. Jun 2008, 14:47
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.

TfrmData = class;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz