AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi [n] Formulare erzeugen - das geht ja noch, aber schliessen??
Thema durchsuchen
Ansicht
Themen-Optionen

[n] Formulare erzeugen - das geht ja noch, aber schliessen??

Ein Thema von meggles · begonnen am 2. Feb 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
meggles
(Gast)

n/a Beiträge
 
#1

[n] Formulare erzeugen - das geht ja noch, aber schliessen??

  Alt 2. Feb 2004, 12:31
Hi,
meine MainForm eines email-Clients soll verschiedene (=n) Emails gleichzeitig öffnen können. In einer Prozedur "Speichern und Schließen" im Email-Fenster soll nach dem Speichern, ja richtig, das Fenster geschlossen werden.
self.free scheint nicht zu gehen, da kriege ich ne Zugriffsverletzung - wieso?
Danke!
Simon
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 12:33
Zeig mal Code wie du sie erstellest. Ohne kann man schlecht sagen warum es nicht geht.

Verwaltest du sie in einem Array?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 12:34
Hallo,
lass mal self.free weg und schreibe in das OnClose-Event Action:=caFree
  Mit Zitat antworten Zitat
meggles
(Gast)

n/a Beiträge
 
#4

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 14:18
Hallo,
sorry, wenn ich das jetzt zu schwammig formuliert habe:

Aaaalso, im Hauptfenster erzeuge ich z.b. ein Fenster füür "neue Email":
Delphi-Quellcode:
procedure TfHaupt.AcNeueEmailExecute(Sender: TObject);
var vfNeueEmail : TfEmail;
begin
  vfNeueEmail := TfEmail.Create(Application);
  vfNeueEmail.Show;
end;
Das kann ich natürlich auch mehrmals hintereinander machen.
Jedes erzeugte Email-Fenster hat eine Aktion "Speichern und schließen":

Delphi-Quellcode:
procedure TfEmail.ActspeichernExecute(Sender: TObject);
begin
  //email-insert (bei noch nicht gespeicherter Email)
  //email-update (wenn schon mal gespeichert wurde)
  // und jetzt natürlich das Fenster schließen:
  self.Free;
end;
self.free direkt bringt keine Zugriffsverletzung - die kommt in dem Moment, wo ich diese Prozedur verlasse. Das kommt, befürchte ich von der onCloseQuery, mit der ich ja auch beim manuellen Schließen der Form fragen muss, ob gespeichert werden soll.
Wie also kann ich das Formular vonhand schließen, ohne dass beim Schließen noch ein Ereignis ausgelöst wird...?
Danke!
Simon
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 14:21
Einfach nur Self.Close oder besser noch Self.Release aufrufen. Bei Self.Free überspringst Du meines Wissens nach das OnClose und OnCloseQuery.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
meggles
(Gast)

n/a Beiträge
 
#6

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 14:31
Zitat:
Bei Self.Free überspringst Du meines Wissens nach das OnClose und OnCloseQuery.
Hmmmm.... aber da bekomme ich ja - wie erwähnt, die zugriffsverletzung. M.E. deshalb, weil ich die Form freigebe. Das einzige, was ich mir als Fehlerquelle vorstellen kann, ist in der Tat das onClose-Ereignis (einer Form, die es nichtmehr gibt)

Ich werd das mal onclose-Zeuch mal auskommentieren, und sehen, ob ich keine ZV bekomme.

Vielen Dank Euch trotzdem!


Simon
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 14:43
Benutz mal die suche der DP. Da hatten wir schonmal das thema eines selbst zerstörenden Objectes. Im gunde genommen ist es nicht möglich weil du ja das form benutzt, dann free sagst aber deine klickprocedure oder wie immer du das machst ist ja zu dem zeitpunkt auch noch in benutzung und nach dem klckereignis ist die formkomponente immer noch in der OnClickroutine die du ja aber eigentlich schon aufgelöst hast...
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 14:47
Hallo,
und noch einmal.
Anstatt Self.Free Close aufrufen.
Im OnClose-Event Action auf caFree setzen.
  Mit Zitat antworten Zitat
meggles
(Gast)

n/a Beiträge
 
#9

Re: [n] Formulare erzeugen - das geht ja noch, aber schliess

  Alt 2. Feb 2004, 15:10
Potzblitz - danke!
  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 13:15 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