AGB  ·  Datenschutz  ·  Impressum  







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

ShowModal im OnFormShow

Ein Thema von Captnemo · begonnen am 10. Mär 2015 · letzter Beitrag vom 10. Mär 2015
Antwort Antwort
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

ShowModal im OnFormShow

  Alt 10. Mär 2015, 17:39
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?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#2

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 17:54
Ja, kann ich, ich mußte nur das CreateForm der 2.Form vor dem CreateForm der Mainform aufrufen.
Damit machst du aber das 2.Form zum MainForm! MainForm ist immer das erste Form, das erzeugt wird.

Eigentlich sollte das auch ohne dies gehen, denn das FormShow wird erst im Application.Run ausgeführt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.355 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 17:57
Ja, kann ich, ich mußte nur das CreateForm der 2.Form vor dem CreateForm der Mainform aufrufen.
Oder gar nicht im Projektquelltext erstellen, was meistens sinnvoller ist...
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;
Aber, jetzt reagiert mein 2.Form nicht mehr auf ModalResult, auch nicht, wenn ich direkt in den Button-Eigenschaften festlegen.
Das kann ich nicht reproduzieren. Hast du vielleicht ein kleines Beispielprojekt?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 18:03
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:
procedure Tfrm_main.FormShow(Sender: TObject);
begin
  .
  .
  .
  if frm_hinweisfenster.ShowModal<>mrOk then
    Application.Terminate;
end;
Visuell nehme ich folgendes war:
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.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 18:11
Also, wenn ich sie mir selbst erzeuge habe ich das gleiche Problem, weil sie sofort sichtbar wird.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#6

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 18:24
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.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#7

AW: ShowModal im OnFormShow

  Alt 10. Mär 2015, 18:33
Wenn ich dann weiterlaufen lasse, kommt die Fehlermeldung: "Sichtbares Fenster kann nicht in modales geändert werden"
Was sagt uns denn diese Fehlermeldung?

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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  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 17:37 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