AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit verschiedenen Forms

Ein Thema von DomPerle · begonnen am 17. Apr 2018 · letzter Beitrag vom 20. Apr 2018
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Problem mit verschiedenen Forms

  Alt 17. Apr 2018, 16:26
Auch Modale Forms kann man mehrmals erzeugen.

Nimm z.B. eine TForm1, da drauf ein Button und darin dann
Delphi-Quellcode:
F := TForm1.Create(Self);
F.ShowModal;
Aber gerade dann, wenn Forms mehrfach erzeugt werden, darf man die globalen Form-Variablen vom Delphi nicht mehr benutzen.

Und bei Freigabe der Forms werden diese globalen Variablen nicht automatisch auf NIL gesetzt. Ein Publisched-Field im Owner der neuen Form würde automatisch NIL, wenn es genau so heißt, wie die neue Form (aber in diesem Owner darf/kann es dann auch nur je eine einzige Instanz geben)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Apr 2018 um 16:29 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Problem mit verschiedenen Forms

  Alt 17. Apr 2018, 16:54
Hallo,
das ja zwei Fragen.

Zitat:
Ausserdem werden bei Button1Click bzw. Button2Click immer neue Fenster göffnet.
Du erzeugst ja auch jedes Mal mit TFormx.Create ein neues Fenster.
Delphi-Quellcode:
Form3 := TForm3.Create( Self );
Form3.Show;
Delphi-Quellcode:
if Form3=nil then
begin
  Form3 := TForm3.Create( Self );
end;
Form3.Show;
Zitat:
Bei Form3.Close bzw. Form4.Close erhalte ich 'AccessViolation'.
Wo genau?

Nimm besser
FreeAndNil(Form3);


Die Frage wäre hier auch noch, wer schließt Form3 und Form 4, in meinem Fall hier ist es das Hauptformular (Form1).
Sollte Form3 sich selber schließen wollen, rufst du Close in Form3 auf (Form3.Close wäre das gleiche, muss aber nicht, macht man auch nicht).
Dann musst du dem Hauptform irgendwie beibringen, das die globale Variable Form3 auf nil gesetzt werden muss.
Heiko
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#3

AW: Problem mit verschiedenen Forms

  Alt 17. Apr 2018, 17:08
Zitat:
Dann musst du dem Hauptform irgendwie beibringen, das die globale Variable Form3 auf nil gesetzt werden muss.
Ich habe irgendwo mal gelesen, dass sich für solche Fälle (Fenster öffnen, erstellen, schließen, bekannt-machen und so) jemand eine Art Wrapper-Unit geschrieben hat, die für all das zuständig ist und auch über alles bescheid weiß.
Also im Prinzip eine einfache Unit die alles macht, tut, weiß und super-schlau ist.

Vielleicht hilft sowas ja.

Geändert von günni0 (17. Apr 2018 um 17:11 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Problem mit verschiedenen Forms

  Alt 17. Apr 2018, 17:09
Hallo,
das wäre eine gute Entkopplung von Hauptformular.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:20 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