AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Close in OnActivate eines modalen fensters hat keine Wirkung
Thema durchsuchen
Ansicht
Themen-Optionen

Close in OnActivate eines modalen fensters hat keine Wirkung

Ein Thema von Luckie · begonnen am 13. Mär 2004 · letzter Beitrag vom 13. Mär 2004
Antwort Antwort
Benutzerbild von Luckie
Luckie

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

Close in OnActivate eines modalen fensters hat keine Wirkung

  Alt 13. Mär 2004, 07:49
Ich habe folgenden Code:
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin
  if bFirstTime then
    Form2.ShowModal;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  bFirstTime := True;
end;
Delphi-Quellcode:
procedure TForm2.FormActivate(Sender: TObject);
var
  Loop: Integer;
begin
  if bFirstTime then
  begin
    for Loop := 0 to 9 do
    begin
      Caption := IntToStr(Loop);
      Sleep(150);
    end;
    Close;
  end;
  bFirstTime := False;
end;


procedure TForm2.FormCreate(Sender: TObject);
begin
  bFirstTime := True;
end;
Ich denke, es ist klar was der Code soll. Nur hat er einen Haken. Das Close in Form2 hat keinerlei Wirkung. Ich frage mich warum und wie man das Fenster automatisch wieder zu bekommt. Ein
ModalResult := mrOK; an dieser Stelle zeigte auch keine Wirkung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 09:26
Hai Luckie,

kann es sein das dein bFirstTime := False; nie ausgeführt wird weil Du ja davor das Fenster schließt?
Dadruch wird es dann im .FormActivate des ersten Fensters sofort wieder anzezeigt. Ist aber nur eine Vermutung.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
greyblue

Registriert seit: 11. Sep 2003
47 Beiträge
 
#3

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 09:53
in form2

soll
alle bFirstTime
form1.bFirstTime heissen?

oder umgekehrt ..
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 15:10
Nein, das stimmt schon, sonst wird ja die Schleife jedes mal von Form2 abgerabeitet, wenn es aktiviert wird. Und ob das in Form1 stimmt, ist erstmal nebensächlich. Es geht nur um das Close in Form2 in OnActivate.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 16:50
Hi Luckie,
das close-Ereignis ist bei onActivate glaub ich nicht erlaubt, da noch andere Routinen abgearbeitet werden. Haue das close einfach bei onPaint rein, dann müsste sich das Fenster schließen und den gleichen Effekt haben (kann es leider nicht ausprobieren, habe kein Delphi hier).

Tschüß Markus
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 17:00
OnPaint? Ob das aber so das ware ist....
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 17:02
Nein, im OnActivate geht es schon.

OnPaint kannste ja vergessen, denn OnPaint wird ja fast durchgehend aufgerufen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 17:09
Zitat von Matze:
Nein, im OnActivate geht es schon.
Und wie? bei mir steht es ja da, aber es geht nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 17:18
Komisch, dein Beispiel geht bei mir auch nicht.

Wenn man nur eine Form nimmt (Form1) und dort ins OnActivate Close schreibt, dann wird's ausgeführt.

Ich hab deinen Code mal überprüft, nach dem Hochzählen ist bFirstTime immer noch true.
achja, gehört ja so.
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Close in OnActivate eines modalen fensters hat keine Wir

  Alt 13. Mär 2004, 18:26
Dass das close-Ereignis bei Luckie Code nicht ausgeführt wird liegt glaub ich daran, dass er ShowModal verwendet. Hatte das damals mit onPaint gelöst da ich ein Fenster nur kurz anzeigen lassen wollte. Hatte seinen Zweck auch erfüllt.
Man könnte auch das Problem auch lösen, in dem man die Form nicht mit ShowModal anzeigt(Form1.enabled:=false, Form2.FormStyle:=fsStayOnTop).

Tschüß Markus
  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 10:16 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