TripleD Geschrieben 6. September 2004 Geschrieben 6. September 2004 Hallo, ich hab da mal ein Problem. Ich hab ein Hauptdialog mit diversen Buttons. Wenn ich nun auf einen dieser Buttons klicke, öffnet sich ein neuer Dialog. Wenn ich jetzt in diesem neuen Dialog auf Speichern geh, sollte der Hauptdialog aktualisiert werden, damit der neue Eintrag im Hauptfenster angezeigt wird. Gibt es da eine Möglichkeit? Gruß TripleD PS: Benutze VC++ 6 / MFC Zitieren
Goos Geschrieben 6. September 2004 Geschrieben 6. September 2004 Definiere bitte aktualisieren fuer deinen Fall. Goos Zitieren
TripleD Geschrieben 6. September 2004 Autor Geschrieben 6. September 2004 Ich hab einen Hauptdialog, in diesem habe ich ein Listenfeld und diverse Buttons. Zu diesen Buttons gehört z. B. der Button "Löschen". Wenn ich nun auf diesen Button klicke, sollte der Eintrag im Listenfeld verschwinden. Und beim Button "Erfassen", öffnet sich ein neuer Dialog. In diesem kann ich meine Daten abspeichern. Nach klick auf sichern, wird der Dialog geschlossen. Auch hier sollte sich dann das Listenfeld aktualisieren (der neue Eintrag angezeigt werden). Hoffe ich konnte dir, und damit mir helfen!? Gruß TripleD PS: Läuft alles über Dateien. Zitieren
Klotzkopp Geschrieben 6. September 2004 Geschrieben 6. September 2004 Üblicherweise holt sich die Behandlungsfunktion des "Erfassen"-Buttons die Daten vom Unterdialog, nachdem dieser geschlossen wurde, und kümmert sich selbst um die Aktualisierung. Zitieren
TripleD Geschrieben 6. September 2004 Autor Geschrieben 6. September 2004 @ Klotzkopp Der Hauptdialog wird ja nicht geschlossen. Der sollte immer sichbar sein. Wenn ich den Hauptdialog schließe und wieder öffne, passt alles. Gibt es da keine schönere Variante, als wenn auch Button geklickt wird, die Funktion ausgeführt wird, ich den Hauptdialog schliesse und der sich dann nochmal öffnet? Zitieren
Klotzkopp Geschrieben 6. September 2004 Geschrieben 6. September 2004 Der Hauptdialog wird ja nicht geschlossen. Ich habe auch nichts vom Schließen des Hauptdialogs geschrieben. Wenn ich den Hauptdialog schließe und wieder öffne, passt alles.D.h. du legst die Daten bereits irgendwo ab? Wo und wann passiert das? Gibt es da keine schönere Variante, als wenn auch Button geklickt wird, die Funktion ausgeführt wird, ich den Hauptdialog schliesse und der sich dann nochmal öffnet?Sicher gibt es die. Und die sieht so aus, wie ich sie eben schon beschrieben habe: - Unterdialog öffnen - Benutzer Daten eingeben lassen - Unterdialog schließen - Daten aus Unterdialog auslesen und sich selbst aktualisieren. Zitieren
TripleD Geschrieben 6. September 2004 Autor Geschrieben 6. September 2004 Ich öffne den Unterdialog, und in diesem geb ich die Daten ein. Dann klick ich auf erfassen, und es wird eine Datei mit den eingegebenen Daten erstellt. Danach wird der Dialog geschlossen. Wie kann ich den Hauptdialog sich selbst aktualisieren lassen? TripleD Zitieren
Klotzkopp Geschrieben 6. September 2004 Geschrieben 6. September 2004 Erstellst du die Datei bereits aus dem Unterdialog? Falls ja, solltest du dafür einen guten Grund haben - nicht nur den, dass die Daten, die in die Datei geschrieben werden sollen, da gerade verfügbar sind. Du musst ein klares Konzept für den Datenfluss aufstellen. Die Interaktion mit den Datendateien sollte nur an einer Stelle passieren, ansonsten sollten die Daten im Speicher weitergereicht werden. Keinesfalls sollte jeder Dialog sein eigenes Süppchen kochen und dann allen anderen über die Änderungen Bescheid geben. Das wird zunehmend komplizierter, je mehr datenverarbeitende Stellen du hast. Einer muss für die Synchnonisation der Daten zwischen Datei und Speicher verantwortlich sein, und die Anderen haben die Finger davon zu lassen. Konkret: Ich würde den Unterdialog keine Datei erstellen lassen. Er soll nur die Daten für den Hauptdialog vorhalten. Der kümmert sich um das Speichern der Daten und kann sich dabei auch gleich selbst aktualisieren. Zitieren
TripleD Geschrieben 6. September 2004 Autor Geschrieben 6. September 2004 Wenn ich es jetzt richtig verstanden habe, soll ich alle funktionen, die etwas mit dem erstellen der dateien bzw löschen der Dateien zu tun haben im Hauptdialog ablaufenlassen. Die Daten aus dem Unterdialog soll ich also in Globale Variablen schreiben und an die Funktion z.B. zum Speichern schicken? Mit welcher Funktion / Befehl aktualisier ich den Hauptdialog dann? Zitieren
Klotzkopp Geschrieben 6. September 2004 Geschrieben 6. September 2004 Wenn ich es jetzt richtig verstanden habe, soll ich alle funktionen, die etwas mit dem erstellen der dateien bzw löschen der Dateien zu tun haben im Hauptdialog ablaufenlassen.Das klingt schon ganz gut Die Daten aus dem Unterdialog soll ich also in Globale Variablen schreiben und an die Funktion z.B. zum Speichern schicken?Nein, keine globale Variablen. Der Hauptdialog kann doch nach dem Schließen des Unterdialogs noch auf die Member der Unterdialog-Klasse zugreifen und die Daten auslesen. Mit welcher Funktion / Befehl aktualisier ich den Hauptdialog dann?Da gibt es keine fertige Funktion, das musst du selbst machen. Du kannst natürlich die Funktion aufrufen, die du auch beim Start des Hauptdialogs für die Initialisierung benutzt. Zitieren
kLeiner_HobBes Geschrieben 6. September 2004 Geschrieben 6. September 2004 Ich würd keine globalen Variablen nehmen. Entweder, du nimmst globale Klassen mit statischen Attributen oder du definierst die Attribute in der Unterdialogklasse. Nach dem Schließen desselben kannst du diese Daten dann aus der Klasse auslesen. Den Befehl mußt du dir im Prinzip selbst schreiben. Wenn du im UD einen neuen Eintrag definiert hast, dann kannst du an der Stelle, nachdem der UD aufgerufen wurde und die Kontrolle sozusagen übergeben wurde, die Daten aus dem UD-Objekt auslesen, in deinen Datenbestand aufnehmen und in die Listbox adden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.