Variablen-Übergabe an C++ Dialoge



  • Servus zusammen,

    ich habe ein Programm, in dem ich einen Zeiger auf eine Klasse habe.
    Während des Programms rufe ich einen Dialog mit name->ShowModal() auf.

    Der Dialog ist einer der Standarddialoge, die man über Hinzufügen >>Weitere >> Passwortdialog dem Projekt hinzufügen kann.

    Nun will ich dem Dialog ermöglichen, auf den bereits vorhandenen Zeiger im aufrufenden Programm zuzugreifen.
    Der Zeiger ist global verfügbar, wird also direkt nach using namespace std deklariert.

    Geht das irgendwie oder gibts da keine Möglichkeit zu? Habe schon das Hauptprogramm per include in den Dialog eingebunden, aber das juckt den nicht weiter.



  • Hi,
    ist der Zeiger denn private oder public?

    mfg
    Peter



  • du könntest die Funktion einfach im Hauptprogramm schreiben und dann vom Dialog diese Funktion aufrufen (mit nem include des Hauptprogramm Headers). Dann umgehst du das Problem, dass der Zeiger irgendwie zum Dialog muss.

    greetz KN4CK3R



  • Erzeuge eine Membervariable vom Typ deines Zeigers in deinem Dialog und übergib der diesen Zeiger, am besten über eine Funktion.
    Du kannst auch in deinem Dialog eine Memberfunktion einfügen welche den Zeiger übernimmt und dann gleich ShowModal aufruft. Diese Funktion kannst du dann anstelle von Dialog->ShowModal() anderweitig aufrufen (finde ich besser).



  • Da ich mich auf der Firma mal wieder nicht einloggen kann, wieder unregistriert.

    Die Idee mit ner Funktion im Hauptprogramm ist natürlich auch eine gute Idee.

    @Braunstein: damit wären wir wieder bei der Frage "Wie übergebe ich eine Variable an einen Dialog"



  • Über eine Memberfunktion der Dialogklasse.



  • dadurch habe ich die Variable trotzdem noch nicht an den Dialog übergeben, wenn ich in der Header-Datei eine neue Funktion einfüge.

    Das Problem ist doch, dass ich vom Dialog keinen Zugriff auf die Variablen des Hauptprogramms habe.



  • In dieser Funktion sollst du ja die Variable als Parameter übergeben. Das Hauptprogramm ruft die dann selbst auf und übergibt so die variable an deine Dialogklasse.
    Der Dialog sollte nie direkten Zugang zu den Variablen des Hauptprogrammes haben.
    So etwas mag zwar als Lösung erscheinen, du hast aber dann im Hauptprogramm keine Kontrolle mehr darüber wer gerade irgendwelche Variablen ändert.
    Siehe auch
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-39302.html
    http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node17.html#SECTION00416000000000000000



  • ahhh danke dir 🙂

    Habs versucht und funzt sogar 😃 👍


Log in to reply