Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

@ 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?

Geschrieben
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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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?

Geschrieben
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.
Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...