![]() |
AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu
PopupParent = die Form, über welche diejenige Form immer drüber liegt.
PopupMode gehört auch noch dazu. Vorallem bei Programmen mit mehreren Fenstern, welche nicht ShowModal sind ganz praktisch, um zu verhindern, daß Fenster hinter anderen verschwinden. (ohne explizite Angabe benutzt Delphi standardmäßig die MainForm) |
AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu
@himitsu: Danke für die Erläuterung
|
AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu
Hallo zusammen,
danke für eure Hinweise. Das mit dem PopupParent habe ich nachvollziehen können, ich hatte es bisher verwendet, damit Fenster nicht hintereinander verschwinden, und ich immer ein modales Fenster habe. Das funzt aber im Zusammenhang mit AdvStringGrid nicht. Da ich auf den GlassFrame nicht verzichten kann/möchte, habe ich vorerst das PopupParent weggelassen, der TMS Support weiß bescheid und besitzt eine nachvollziehbare Applikation. Ich nehme an, hier wird in Kürze ein Fix erscheinen. Der problematische Zusammenhang mit GlassFrame ist auch deswegen nachvollziehbar, weil es mit PopupParent unter Windows XP funktioniert, da hier der GlassFrame standardseitig deaktiviert ist. |
AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu
Was kommt denn hier raus?
Delphi-Quellcode:
var
LogForms: string; procedure AddFormLog(S: string); begin LogForms := LogForms + S + ':' + sLineBreak; if Assigned(Screen.ActiveCustomForm) then with Screen.ActiveCustomForm do LogForms := LogForms + 'Active = ' + ClassName + '.' + Name + ' > ' + BoolToStr(Visible, True) + sLineBreak else LogForms := LogForms + 'Active = nil' + sLineBreak; for i := 0 to Screen.CustomFormCount - 1 do with Screen.CustomForms[i] do LogForms := LogForms + ClassName + '.' + Name + ' > ' + BoolToStr(Visible, True) + sLineBreak; end; begin LogForms := 'Drücke Strg+C zum Kopieren' + sLineBreak + sLineBreak; AddFormLog('BeforeCreate'); FormDatenVergleich.FormDatenVergleichVar := FormDatenVergleich.TFormDatenVergleich.Create(Application); try AddFormLog('PopupParent'); FormDatenVergleich.FormDatenVergleichVar.PopupParent := Self; AddFormLog('BeforeShow'); FormDatenVergleich.FormDatenVergleichVar.ShowModal; finally AddFormLog('AfterShow'); FormDatenVergleich.FormDatenVergleichVar.Free; AddFormLog('AfterFree'); end; //Application.ProcessMessages; //AddFormLog('AfterMessages'); ShowMessage(LogForms); end; |
AW: AdvStringGrid lässt MainForm verschwinden und liefert Fokus nicht ans Programm zu
Das hier:
Delphi-Quellcode:
[Window Title]
Project4 [Content] BeforeCreate: Active = TForm2.Form2_1 > True TForm2.Form2_1 > True TForm1.Form1 > True TForm2.Form2 > False TForm3.Form3 > False TNoActiveForm. > False TTrackerForm. > False PopupParent: Active = TForm2.Form2_1 > True TForm2.Form2_1 > True TForm1.Form1 > True TForm2.Form2 > False TForm3.Form3 > False TNoActiveForm. > False TTrackerForm. > False TFormDatenVergleich.FormDatenVergleich > False TNoActiveForm. > False BeforeShow: Active = TForm2.Form2_1 > True TForm2.Form2_1 > True TForm1.Form1 > True TForm2.Form2 > False TForm3.Form3 > False TNoActiveForm. > False TTrackerForm. > False TFormDatenVergleich.FormDatenVergleich > False TNoActiveForm. > False AfterShow: Active = TForm2.Form2_1 > True TForm2.Form2_1 > True TFormDatenVergleich.FormDatenVergleich > False TForm1.Form1 > True TForm2.Form2 > False TForm3.Form3 > False TNoActiveForm. > False TTrackerForm. > False TNoActiveForm. > False AfterFree: Active = TForm2.Form2_1 > True TForm2.Form2_1 > True TForm1.Form1 > True TForm2.Form2 > False TForm3.Form3 > False TNoActiveForm. > False TTrackerForm. > False |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 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