![]() |
ShowModal im OnFormShow
Kann ich im OnFormShow-Ereignis der Mainform eine andere Form mit ShowModal aufrufen?
Ja, kann ich, ich mußte nur das CreateForm der 2.Form vor dem CreateForm der Mainform aufrufen. Aber, jetzt reagiert mein 2.Form nicht mehr auf ModalResult, auch nicht, wenn ich direkt in den Button-Eigenschaften festlegen. Woran könnte das liegen? |
AW: ShowModal im OnFormShow
Zitat:
Eigentlich sollte das auch ohne dies gehen, denn das FormShow wird erst im Application.Run ausgeführt. |
AW: ShowModal im OnFormShow
Zitat:
Delphi-Quellcode:
procedure TFirstForm.FormShow(Sender: TObject);
var ExampleForm: TExampleForm; begin ExampleForm := TExampleForm.Create(Self); try if IsPositiveResult(ExampleForm.ShowModal) then ... finally ExampleForm.Free; end; end; Zitat:
|
AW: ShowModal im OnFormShow
Okay, das hätt ich wissen müssen. Du hast natürlich recht. Das erklärt auch das Verhalten vom ModalResult.
Aber andersherum geht's auch nicht. Ich habe im OnFormShow der MainForm folgendes drin:
Delphi-Quellcode:
Visuell nehme ich folgendes war:
procedure Tfrm_main.FormShow(Sender: TObject);
begin . . . if frm_hinweisfenster.ShowModal<>mrOk then Application.Terminate; end; Als erstes sehe ich die 2. Form, erst dann erscheint meine MainForm, und erst dann komme ich zu dem Breakpoint, den ich in der Zeile gesetzt habe, wo ich ShowModal aufrufen. Wenn ich dann weiterlaufen lasse, kommt die Fehlermeldung: "Sichtbares Fenster kann nicht in modales geändert werden" Das mit dem Selbsterzeugen werde ich gleich mal probieren. |
AW: ShowModal im OnFormShow
Also, wenn ich sie mir selbst erzeuge habe ich das gleiche Problem, weil sie sofort sichtbar wird.
|
AW: ShowModal im OnFormShow
Ich habe das jetzt anders gelöst.
Da ich sowieso einen Datenbankzugriff benötige, um weitere Vorgänge abzuarbeiten, zeige ich jetzt das Fenster Modal an im AfterConnect-Ereignis der DB. Erscheint mir für meinen Zweck auch schon fast besser. Somit habe ich das Problem nicht mehr. |
AW: ShowModal im OnFormShow
Zitat:
Sie sagt, dass das Fenster bereits "Sichtbar" ist und daher nicht als modales Fenster aufgerufen werden kann. Die Property "Visible" des Fensters steht auf "True". Wenn Du diese im OI auf "false" stellst, dann funktioniert es auch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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