AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Inhalt von Formular bleibt nach "Close"-Ereignis vorhanden!?
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt von Formular bleibt nach "Close"-Ereignis vorhanden!?

Ein Thema von Stefan H. · begonnen am 5. Jul 2004 · letzter Beitrag vom 5. Jul 2004
Antwort Antwort
Stefan H.

Registriert seit: 10. Dez 2003
12 Beiträge
 
Delphi 6 Personal
 
#1

Inhalt von Formular bleibt nach "Close"-Ereignis v

  Alt 5. Jul 2004, 20:17
Hallo Leute,

ich hoffe, dass mir jemand bei meinem folgenden Problem helfen kann.

Ich habe zwei Formulare. Bei dem ersten Formular werden Datensätze in einer ListBox angezeigt. Wird ein Doppelklick auf einen der Datensätze aus der ListBox ausgelöst, so öffnet sich das zweite Formular und zeigt weitere Details in dem neuen Formular an, bis der Benutzer das zweite Formular wieder schließt. Bis dahin funktioniert alles prima.
Folgendes Problem:
Wenn ich einen neuen bzw. weiteren Datensatz aus der ListBox auswähle so öffnet sich zwar wieder das zweite Formular doch stellenweise sind noch die Daten von dem vorherigen öffnen vorhanden.
Obwohl das Formular beim ersten Mal mit "Close" beendet wurde sind beim erneuten Aufruf des Formulars die Daten noch immer vorhanden.

Normalerweise müssten doch wenn ich ein Formular mit "Close" beende alle Daten in den Steuerelementen verschwinden bzw. zurückgesetzt sein.
Bei VB hatte ich nie die Probleme bzw. kenne ich dieses Problem nicht.

Im Moment setze ich im Formular-Ereignis "OnShow" alle bzw. einige Steuerelemente auf null zurück.

Kann mir evtl. dazu jemand eine andere Lösung geben => Formulareinstellungen usw.

Danke im Voraus,
Stefan H.
  Mit Zitat antworten Zitat
rantanplan99
(Gast)

n/a Beiträge
 
#2

Re: Inhalt von Formular bleibt nach "Close"-Ereign

  Alt 5. Jul 2004, 20:28
Hallo Stefan

Das Verhalten ist normal. mit Close setzt du glaube ich nur das Visible auf False. Jedenfalls wird das Formular nicht Destroy-ed, und die Komponenten in deinem Formular bleiben erhalten, ebenso Ihre Werte.

Entweder Zerstörst du Formular anstatt es mit Close zu schliessen, musst es dann aber jedesmal wenn du es benutzt vorher wieder erzeugen (Create), oder du musst im onShow alle werte löschen.

rantanplan
  Mit Zitat antworten Zitat
Stefan H.

Registriert seit: 10. Dez 2003
12 Beiträge
 
Delphi 6 Personal
 
#3

Re: Inhalt von Formular bleibt nach "Close"-Ereign

  Alt 5. Jul 2004, 20:45
Hallo rantanplan99,

vielen Dank für die schnelle Antwort.

Ich habe mal versucht das zweite Formular mit "Destroy" zu beenden, das Fenster hat sich zwar geschlossen doch dann bekam ich die Fehlermeldung "Abstrakter Fehler" und die Anwendung hat sich aufgehangen.

Kann es daran liegen, dass ich das zweite Formular nicht mit "Create" erstellt habe?
Warum soll ich ein Formular mit Create erstellen, wenn es doch schon vorhanden ist?????

Sorry, im Moment verstehe ich nicht den Zusammenhang mit Close, Create und Destroy.
Kann es evtl. daran liegen, dass ich mein zweites Formular mit ShowModal öffne?

Gruß,
Stefan H.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Inhalt von Formular bleibt nach "Close"-Ereign

  Alt 5. Jul 2004, 21:02
Schau dir mal "Projekt" -> "Quelltext anzeigen" an. Standardmäßig ist es so, dass dein zweites Formular gleich beim Start deiner Anwendung erstellet wird (create) mit Show/ShowModal zeigst du es nun an, und mit Close schliest du es wieder. (Bei dem Hauptformular wird die Anwendung beendet)

Entferne am besten in der Projektdatei ("Projekt" -> "Quelltext anzeigen") den Eintrag der dein 2. Formular erstellt, und zeige dein 2. Formlular folgendermaßen an:

Delphi-Quellcode:
Form2 := TForm2.Create(self); // erstellen
try
  Form2.ShowModal; // anzeigen
finally
  Form2.Free; // freigeben
  Form2 := nil;
end;
Das 2. Formular musst du mit Close schliesen, damit es anschliesend wieder freigegeben wird.

Achtung: Wenn du auf dein 2. Formluar zugreifst, ohne es vorher zu erstellen, bekommst du eine Fehlermeldung.

[edit]Aber was hat das mit Datenbanken zu tun [/edit]
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
5. Jul 2004, 21:09
Dieses Thema wurde von "sakura" von "Datenbanken" nach "VCL-Komponenten und Controls" verschoben.
Stefan H.

Registriert seit: 10. Dez 2003
12 Beiträge
 
Delphi 6 Personal
 
#6

Re: Inhalt von Formular bleibt nach "Close"-Ereign

  Alt 5. Jul 2004, 21:42
Hallo MrKnogge,

ich habe Dein Beispiel abgeleitet und es funktioniert jetzt einwandfrei.
Vielen Dank nochmals an MrKnogge und rantanplan99 die mir beide geholfen haben.

Tschaui

Gruß,
Stefan H.

PS. Das mit den Datenbanken war nur ein Beispiel.
  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 15:34 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