Zugriff auf Klasse von einem anderen File



  • Compiler: Borland C++ 5.01

    Hallo,

    ich habe eine Klasse, in der unter anderem ein TGauge angelegt ist:

    class TDataDialog: public TDialog
    {
    public:

    TGauge *GSuche;
    .
    .
    .
    }

    TDataDialog::TDataDialog( TWindow* parent, // Konstruktor
    TModule* module)
    : TDialog(parent, IDD_DIALOG1, module)
    {
    .
    .
    .
    GSuche = new TGauge(this,"%d%%", 888, 720, 400, 110, 18, true);
    }

    TDataDialog* TData;

    in einem anderen File des Projects:

    extern TDialog* TData;

    void AndereFunktion(void)
    {
    TData->MessageBox(.....) //funktioniert
    .
    .
    TData->GSuche->SetRange(x); //funktioniert nicht
    .
    .
    }

    bei obigem Versuch der Fortschrittsanzeige einen Wert zuzuweisen, bekomme ich die Fehlermeldung: "GSuche is not a member of TDialog".
    Die Messagebox funktioniert auf diese Weise. Was mache ich falsch?
    Das Problem habe ich nur, wenn ich die Anzeige von einem anderen File aus ansprechen will. Wenn ich dieselbe Funktion (void AndereFunktion(void)) im gleichen File ablege funktioniert der Zugriff auf die Anzeige.

    Grüsse und Danke,
    Jochen



  • GSuche ist bei dir ja auch Member von TDataDiaog, nicht von TDialog.



  • Geo schrieb:

    GSuche ist bei dir ja auch Member von TDataDiaog, nicht von TDialog.

    ja, wenn ich den Aufruf aber im gleichen File ausserhalb(!) der Klasse setze, dann funktioniert es. Es kann als kein Problem von Member oder nciht Member sein.

    Jochen



  • Es ist aber trotzdem so, wie geo gesagt hat.
    Was spricht denn gegen

    extern TDataDialog* TData;
    

    ?

    Jockel



  • Jockelx schrieb:

    Was spricht denn gegen

    extern TDataDialog* TData;
    

    ?

    Jockel

    Die Fehlermeldung "Declaration Syntax Error"

    Jochen


Anmelden zum Antworten