AGB  ·  Datenschutz  ·  Impressum  







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

Einmal MDI, immer MDI

Ein Thema von bernau · begonnen am 31. Okt 2014 · letzter Beitrag vom 31. Okt 2014
Antwort Antwort
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

Einmal MDI, immer MDI

  Alt 31. Okt 2014, 10:48
Delphi 2007:

Ich habe ein eigenartiges Problem, welches man auch leicht nachvollziehen kann.

Ich erstelle eine normale VCL-Formularanwendung mit zwei Forms. Auf dem Mainform ist ein Button, mit dem ich das zweite Form erzeuge und anzeige.

Delphi-Quellcode:
procedure TFormTest1.Button1Click(Sender: TObject);
var
  lFormTest2:TFormTest2;
begin
  lFormTest2:=TFormTest2.Create(Self);
  lFormTest2.show; // Muss aufgerufen werden, damit das Form angezeigt wird
end;

Danach folgender Test:
FormTest1 bekommt als Formstyle den Wert fsMDIForm und FormTest2 als Formstyle den Wert fsMDIChild. Der Folgende Code funktioniert wie erwartet. TFormTest2 wird als MDIChild angezeigt.

Delphi-Quellcode:
procedure TFormTest1.Button1Click(Sender: TObject);
var
  lFormTest2:TFormTest2;
begin
  lFormTest2:=TFormTest2.Create(Self);
  // lFormTest2.show; -> Muss nicht aufgerufen werden, da MDIChilds beim erzeugen automatisch angezeigt werden.
end;
Nun mache ich alles Rückgängig. Beide Forms bekommen als Formstyle wieder fsNormal.

Nun passiert aber etwas eigenartiges. Wenn ich das zweite Codebeispiel aufrufe, sollte ja erwartungsgemäß des FormTest2 "nicht" angezeigt werden, da dafür ja "show" zuständig ist. Dem ist aber nicht so. Das Form wird trotzdem angezeigt. Es zwar korrekterweise als normales Form und nicht als MDIForm angezeigt. Aber eigendlich dürfe es ja garnicht erscheinen.

Kann mir das jemand mal erklären.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  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
 
#2

AW: Einmal MDI, immer MDI

  Alt 31. Okt 2014, 11:13
Durch das Setzen von fsMDIchild wird auch die Eigenschaft Visible geändert und wenn es danach geht, dann muss die Form auch angezeigt werden
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 bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Einmal MDI, immer MDI

  Alt 31. Okt 2014, 11:36
Unglaublich. Da sucht man stundenlang. Denkt, man hat einen Bug gefunden. Und dann ist es so etwas triviales.

Danke!
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  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 04:41 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