AGB  ·  Datenschutz  ·  Impressum  







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

Rückkehr nach Showmodal

Ein Thema von Spezi · begonnen am 23. Mai 2010 · letzter Beitrag vom 24. Mai 2010
Antwort Antwort
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#1

Rückkehr nach Showmodal

  Alt 23. Mai 2010, 23:58
Hallo,

habe die Suche schon benutzt, aber ich schaff es einfach nicht mein Problem zu beheben.

Und zwar öffne ich aus meinem Hauptformular ein anderes per showmodal.
(Erst erzeuge ich sie mittels Application.CreateForm und durch die nächste Anweisung wird sie modal angezeigt.)

Das Zweite Formular kann man nur über einen Button schliessen, in dem unter anderem das abläuft:
self.Hide(); Habe es auch schon mit Close versucht, aber das Problem ist, dass mein Hauptformular deaktiviert bleibt, ich kann es nur noch über den Taskmanager oder Delphi beenden. Es reagiert auf gar keine Klicks oder Ähnliches.

Habe auch schon nach dem ShowModal in der Prozedur meines Hauptformulars self.refresh oder self.SetFocus aufgerufen, genutzt hat es nichts.

Wodurch kommt dieses Verhalten, und wie kann ich es umgehen?

MfG
spezi
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:03
Zeig doch mal den ganzen Code von dem Aufruf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:08
Also, die Prozedur wird in einem Timer ausgelöst:
Delphi-Quellcode:
procedure Tmainform.die_prozedur();
begin
  timer1.enabled:=false;
  Application.CreateForm(Tform2, form2);
  form2.showmodal();
  self.setfocus();
end;
Und dieses setfocus bringt eben nichts.
Genauso wenig wie refresh.
Und mir fällt auch keine andere Möglichkeit ein...
Wer Rechtschreibfehler findet darf Sie behalten
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:08
Ein modales Fenster schlieest man in dem man ModalResult einen Wert zuweist.
Markus Kinzler
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#5

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:11
Zitat von Spezi:
Delphi-Quellcode:
procedure Tmainform.die_prozedur();
begin
  timer1.enabled:=false;
  Application.CreateForm(Tform2, form2);
  form2.showmodal();
  self.setfocus();
end;
Übrigends kannst du auch einfach in der Prozedure die Form ohne Application.CreateForm erzeugen. Und die in einer lokalen Variable halten:

Delphi-Quellcode:
procedure Tmainform.die_prozedur();
var meineForm : TForm2;
begin
  timer1.enabled:=false;
  meineForm := TForm2.Create(Application);
  if meineForm.showmodal = mrOk then
    begin
    end;
   meineForm.Free;
  self.setfocus();
end;
Lars
  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
 
#6

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:17
Also wenn dann doch so (um den Speicherlecks vorzubeugen)
Delphi-Quellcode:
procedure Tmainform.die_prozedur();
begin
  Timer1.Enabled := False;
  with TForm2.Create( nil ) do
    try

      if ShowModal = mrOK then
        begin
          // alles mögliche abarbeiten
        end;

    finally
      Free;
    end;

  // self.setfocus(); <- das sollte nicht notwendig sein
end;
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
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:28
Stimmt, vergessen
Lars
  Mit Zitat antworten Zitat
Spezi

Registriert seit: 14. Feb 2009
Ort: Deutschland ;-)
65 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Rückkehr nach Showmodal

  Alt 24. Mai 2010, 00:32
Danke, klappt wunderbar

Das es so simpel wäre, hätte ich nicht gedacht
Wer Rechtschreibfehler findet darf Sie behalten
  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 20:36 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