AGB  ·  Datenschutz  ·  Impressum  







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

ShowModal -> Fenster nicht modal

Ein Thema von Tubo · begonnen am 23. Feb 2007 · letzter Beitrag vom 4. Mär 2007
 
Tubo
(Gast)

n/a Beiträge
 
#1

ShowModal -> Fenster nicht modal

  Alt 23. Feb 2007, 16:46
Hallo Community,

ich habe eine Klasse geschrieben, die ständig aktualisiert und gezeichnet werden muss. Zu Anfang hatte ich alles mit einem TTimer realisert, der Update; und Paint; der Klasse aufruft. Alles funktionierte sehr gut.
Da ich es nun mehr in OOP-Style schreiben wollte, habe ich statt des TTImers setTimeEvent in der Klasse benutzt:
Delphi-Quellcode:
procedure TimingTimerCallback(uTimerID, uMessage: UINT; dwUser, dw1, dw2: DWORD); stdcall;
begin
  if (dwUser <> 0) then
    begin
    TTimingTest(dwUser).TimerCallback(uTimerID);
    end;
end;

procedure TTimingTest.TimerCallback(TimerID: Cardinal);
begin
  if (FTimerID = TimerID) then
    begin
    Update;
    Paint;
    end;
end;

procedure TTimingTest.TimerStart(Interval: Cardinal);
begin
  FTimerID := timeSetEvent(Interval, Interval, TFNTimeCallBack(@TimingTimerCallback), LongInt(Self), TIME_PERIODIC);
end;

procedure TTimingTest.TimerKill;
begin
  if (FTimerID <> 0) then
    begin
    timeKillEvent(FTimerID);
    FTimerID := 0;
    end;
end;
Doch nun habe ich das Problem, dass das Fenster, was am Ende des Tests (wird durch ein Event an die Hauptunit signalisiert) angezeigt werden soll, nicht mehr modal ist, obwohl ShowModal aufgerufen wird:
Delphi-Quellcode:
// class method that creates, shows modal and releases the form
class procedure TMsgForm.ShowYourself(const Headline, Msg: String; const Cancel: Boolean = false);
var MsgForm: TMsgForm;
begin
  MsgForm:= TMsgForm.Create(Application, Headline, Msg, Cancel) ;
  try
    MsgForm.ShowModal;
  finally
    MsgForm.Free; //Release;
  end;
end;
Also das Fenster wird zwar angezeigt, ist aber nicht modal!
Und das nur, weil ich statt TTimer, setTimeEvent nutze...
Ich bin ratlos, und selbst der Guru Muetze1 weiß nicht weiter.
Hat jedmand eine Idee.

Danke

P.S.: Als ich statt MsgForm.Free MsgForm.Release aufgerufen habe, ist das ganze Programm stehen geblieben, also reagiere gar nicht mehr.
Schon das hat ewig gedauert festzustellen...
  Mit Zitat antworten Zitat
 


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 06:27 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 by Thomas Breitkreuz