Wykrycie czy ShowMessage został zamknięty przez usera

0

Mam w programiku jaki pisze pewien wątek, który jest wyzwalany z Timera co kilka sekund. Jeśli coś ort! źle to user dostaje wiadomość przez ShowMessage, niestety zauważyłem, że w pewnych sytuacjach wyskakuje mi error Canvas does not allow drowning i mysle, że wynika to stąd, że wątek kilka razy wyświetla komunikat nie sprawdzając czy poprzedni został zamknięty i to jest powodem moich problemów:/ Jeśli ktoś ma jaki pomysł jak to obejść to prosze o sugestie

0

Możesz zrobić własny panel lub nową formę i sprawdzać czy jest widoczna.

0

Jakoś tak:

function IsShowMsgDlg: Boolean;
var
  hDlg: THandle;
begin
  hDlg:= FindWindow('TMessageForm', nil);
  result:= GetParent(hDlg) = Application.Handle;
end;

Zwraca False jak nie ma, a jak już jest to True
Oczywiście działa tylko na komunikaty wyświetlone przez ShowMessage

0

lub function eloelo(tekst : string) : boolean;
begin
result := false;
showmessage(tekst);
result := true;
end;

efekt jaki chciales :0

0

dzięki Wam bardzo mała powtórka z winAPI i dalo radę :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1