AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit modalen Dialogen

Ein Thema von kaju74 · begonnen am 16. Nov 2010 · letzter Beitrag vom 26. Mai 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.386 Beiträge
 
Delphi 12 Athens
 
#1

AW: Problem mit modalen Dialogen

  Alt 16. Nov 2010, 14:48
Die erste Form, welche erstellt und an Application gebunden wird, wird automatisch zur Hauptform der Anwendung.

Lösungen:
- Secondform nicht an Application binden (ich würde aber das Andere empfehlen)
- oder TMainForm zuerst erstellen und wenn dieses erst nach der anderen Form angezeigt werden soll, dann dieses eben vorher nicht anzeigen. (Visible/Hide/Show)

Ansonsten ist es eh schöner, wenn selten/kurz benötigte Forms nicht ständig im Hintergrund geladen sind, sondern daß man sie erst erstellt, wenn nötig und danach wieder freigibt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#2

AW: Problem mit modalen Dialogen

  Alt 16. Nov 2010, 17:17
Hallo.

Erstmal Danke für die Antworten...leider löst das nicht mein Problem. Es ist eine bestehende Anwendung, die sich nicht so einfach ändern lässt. In dem Einstellungsdialog wird ein Objektmodell geladen und direkt mit den Dialogelementen verknüpft. Auf dieses Objektmodell wird bereits im "OnCreate"-Abschnitt des Hauptformulars zugegriffen, daher DARF dieses Dialog nicht nach dem Hauptformular erzeugt werden. Sicher, ich könnte das alles umschreiben, aber das will ich mir ersparen.

Was mir auffällt: Mit dem Wechseln von Delphi7 auf Delphi2010 wurde auch das OS gewechselt, von Windows XP auf Windows7. Vielleicht liegt auch hier der Hund begraben, und Windows7 (oder VISTA, oder WinXP mit neuesten SP's) verfährt da neuerdings anders mit den Fenstern. Wenn das früher schon so gewesen wäre, wäre mir das aufgefallen, da das Verhalten recht unschön ist.

Lieben Gruß,
Marc
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Problem mit modalen Dialogen

  Alt 16. Nov 2010, 17:40
Aber wir können nichts für das Design-Problem der Anwendung.

Die MainForm ist nun mal die Basis einer GUI-Anwendung.
Somit wird diese auch als erstes erzeugt.

Im OnCreate des MainForms darauf zugreifen zu wollen ist definitiv ein Design-Fehler (wenn zu dem Zeitpunkt nicht klar ist, wo das denn herkommen soll)

Wundern sollte man sich darüber auch nicht, dass es mal funktioniert hat, sondern eher freuen, dass es bis jetzt funktioniert hat. Ich würde aber empfehlen das Laden des Objekt-Modells entsprechend zu ändern, dass es im OnCreate der MainForm nicht mehr passiert.

Schließlich befinden wir uns während dieses Events noch nicht im regulären Betrieb der Anwendung, sondern noch in deren Initialisierungsphase.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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
 
#4

AW: Problem mit modalen Dialogen

  Alt 16. Nov 2010, 19:40
ändere doch einfach den Aufruf, nimm es aus der automatischen Erzeugung heraus, und ändere den Zugriff auf
Delphi-Quellcode:
Function MyForm:TTheForm;
begin
if not Assigned(TheForm) then Result := TTheForm.create(Application) else Result := TheForm;
end;
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
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 14:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz