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
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ę :)