AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Weiß einer in welcher Folge die Formulare freigegeben werden
Thema durchsuchen
Ansicht
Themen-Optionen

Weiß einer in welcher Folge die Formulare freigegeben werden

Ein Thema von Popov · begonnen am 19. Okt 2008 · letzter Beitrag vom 19. Okt 2008
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Weiß einer in welcher Folge die Formulare freigegeben werden

  Alt 19. Okt 2008, 09:51
Nehmen wir ein Programm mit fünf Formularen an: Form1, Form2, Form3, Form4 und Form5. Form1 ist das Mainformular. Nun beende ich das Programm in dem ich Form1 schließe. In welcher Reihenfolge werden nun die Fenster freigegeben?

- nach Application.Components Folge?
- wie sie erstellt wurden?
- nach Screen.Forms in der Z-Ordnung Folge?
- es wird eine Message an alle Fenster geschickt und jeder schließt für sich alleine?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 10:46
Pack einfach in das OnDestroy einen Hinweis und du wirst es sehen. Zudem hängt es auch davon ab wie du die Formulare erzeugst. Also ob du einen Owner angibst oder nicht und was du als Owner angibst. Auch der Parent spielt eine Rolle. Wenn du einem Form einen Parent zuweist wird das Form auch freigegeben bevor der Parent zerstört wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 11:41
Zitat von SirThornberry:
Pack einfach in das OnDestroy einen Hinweis und du wirst es sehen.
In OnDestroy funktionieren keine Hinweise. Wenn, dann muß man es schon aufwändiger machen.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 12:17
Ich hab gerade festgestellt, daß es auch aufwändigen nicht geht. Ich wollte das schließen in einer Logdatei protokollieren. Bis auf Form1 wurde nichts protokolliert.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 12:33
Was hälst du von einem Blick in den Quellcode? Dort steht, das Du mit deiner ersten Annahme Recht hast.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 12:43
Aber Application.Components funktioniert doch nur wenn als Owner die Application angegeben wurde?! Und ob Nachrichten im OnDestroy funktionieren hängt von der Delphiversion ab die im Profil ja leider nicht angegeben wurde.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 13:19
Zitat von alzaimar:
Was hälst du von einem Blick in den Quellcode? Dort steht, das Du mit deiner ersten Annahme Recht hast.
Ich nehme auch an es zu wisse, nur bin ich mir nicht 100% sicher.

Ich hab jetzt etwas experimentiert und in jeden FormDestroy diesen einfachen Code eingefügt:

Delphi-Quellcode:
  with TStringList.Create do
  try
    Add(Self.Name);
    SaveToFile(ExtractFilePath(ParamStr(0)) + Self.Name + '.txt');
  finally Free end;
Jedes Fenster erzeugt jetzt beim schließen eine Textdatei und die Folge ist: Form1, Form2, Form3, Form4 und zuletzt Form5.

Dabei ist es egal wie die Formulare in der Projektdatei erstellt wurden, sie kommen alphabetisch raus. Und nur zur Information, ist der Ordner in Explorer offen, werden die Dateien nur angehängt und nicht alphabetisch sortiert. Die Sortierung erfolgt also nicht im Explorer.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 13:29
Wie hast du denn die Fenster erzeugt? Automatisch erzeugen lassen? Denn das sollte auch eine Rolle spielen.
Wenn dir Reihenfolge des Freigebens für dich eine Rolle spielt solltest du dich selbst um Erzeugen und Freigeben kümmern da nur so sicher gestellt ist das es sich bei der nächsten Delphiversion noch genau so verhält und keine überraschenden Effekte auftreten.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

Re: Weiß einer in welcher Folge die Formulare freigegeben we

  Alt 19. Okt 2008, 14:19
Eigentlich erstelle ich die Formulare auch selbst, ich hab erst nur allgemein gefragt, nicht speziell. Auch ist es nicht so wichtig wie sie geschlossen werden, es ist nur wichtig zu wissen in welcher Reihenfolge. Da ich die Formulare selbst erstelle, schließe ich sie auch selbst. Dabei gehe ich der Reihe nach von Oben nach Unten und schicke an jedes Formular per SendMessage eine Message die das Formular zum schließen veranlasst. Somit ist die Reihenfolge eigentlich klar, nur sagt das Ergebnis etwas anderes. Danach ist die Reihenfolge der Schließung zufällig.
  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 19:51 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