AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Form verursacht beim schließen einen Fehler.

Ein Thema von Getox · begonnen am 4. Mai 2013 · letzter Beitrag vom 4. Mai 2013
Antwort Antwort
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 17:53
Delphi-Version: 2007
Hallo,

Ich bin grade dabei mir ein Programm zu basteln, bei dem ich zum erfassen relevanter Daten ein Form mit Eingabefeldern zur Verfügung stellen muss.

Dieses erstelle ich so:

Delphi-Quellcode:
procedure tClientManager.NewClient;
var
  GUI: tForm3;
begin
  Gui := tForm3.Create(application);
  try
    Gui.fClientmanager := self;
    Gui.ShowModal;
  finally
    Gui.Free;
  end;
Und wenn ich auf das "X" dieser Eingabemaske drücke und auch wenn ich meinen Abbrechen-Button (macht nur "close;") bekomme ich eine Fehlermeldung "Zugriffsverletzung bei Adresse bla in Modul bla"

Hat jemand eine Idee was das sein könnte?
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 17:57
Hallo,

Formen die mit showModal geöffnet sind werden in der Regel
mit dem Setzen des modalResults geschlossen.
Du schliesst die Form und gibst sie im Finally nochmals frei.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 17:59
Ich hab das Free im finally auskommentiert und der Fehler kommt immer noch.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 18:11
Kann das daran liegen, dass ich zur selben Zeit 2 Fenster mit Showmodal auf habe?
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 18:13
Formen die mit showModal geöffnet sind werden in der Regel
mit dem Setzen des modalResults geschlossen.
Du schliesst die Form und gibst sie im Finally nochmals frei.
Close und Free bei einem Form sind nicht dasselbe. Lediglich wenn das Form im OnClose-Event als Action caFree setzt, wird das Form bei nächster Gelegenheit freigegeben. Ansonsten wird das Form bei einem Close lediglich unsichtbar gemacht, aber nicht freigegeben. Das try-finally mit dem Free ist also eigentlich korrekt.

Der Fehler liegt offensichtlich außerhalb des für uns sichtbaren Codes.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 18:14
Kann das daran liegen, dass ich zur selben Zeit 2 Fenster mit Showmodal auf habe?
Eigentlich nicht. Ein modales Form kann durchaus ein anderes Form modal aufrufen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 18:15
hm... ich hab grad auch noch mal ein komplett leeres Form erstellt und anstelle der normalen Eingabemaske aufgerufen. Auch das kommt der Fehler...
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#8

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 18:45
Hallo,
in meiner Hilfe zu "free" steht:
Zitat:
To free a form, call its Release method, which destroys the form and releases the memory allocated for it after all its event handlers and those of the components it contains are through executing.
Zum Schließen einer Form verwende ich immer form1.release und nicht form1.free.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 19:09
Auch wenn Du Release immer verwenden kannst, ist es in dem gezeigten Fall nicht nötig (das Problem) da die EventHandler nach dem Showmodal ja "durch" sind.

Release macht nichts anderes als ein PostMessage mit CM_RELEASE aufzurufen, welches dann nach dem abarbeiten der Events Free aufruft.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#10

AW: Form verursacht beim schließen einen Fehler.

  Alt 4. Mai 2013, 23:00
hm... ich hab grad auch noch mal ein komplett leeres Form erstellt und anstelle der normalen Eingabemaske aufgerufen. Auch das kommt der Fehler...
An welcher Code-Zeile genau kommt denn der Fehler?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 22:26 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