Fehlermeldung bei Messagebox.

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Fehlermeldung bei Messagebox.

Beitrag von haderlump »

Kann es sein, dass ShowMessage(...) nur aus dem Main Thread heraus möglich ist? Ich bekomme da eine Exeption, die darauf hindeutet. Wenn das so ist, was kann ich dann ersatzweise machen ?

Gruß Fritz

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Fehlermeldung bei Messagebox.

Beitrag von mse »

haderlump hat geschrieben:Kann es sein, dass ShowMessage(...) nur aus dem Main Thread heraus möglich ist?

In MSEgui sind die showmessage() Funktionen thread safe. Es ist ein ziemlicher Aufwand, es kann gut sein, dass dies in Lazarus anders gehandhabt wird.
Ich bekomme da eine Exeption, die darauf hindeutet. Wenn das so ist, was kann ich dann ersatzweise machen ?

Die showmessage() Funktionen in einem synchronize() -
https://www.freepascal.org/docs-html/rt ... onize.html
queue() -
https://www.freepascal.org/docs-html/rt ... queue.html
oder application.queueasynccall() -
http://lazarus-ccr.sourceforge.net/docs ... ccall.html
callback aufrufen oder Variablen für den main thread setzen, wakemainthread aufrufen
http://lazarus-ccr.sourceforge.net/docs ... hread.html
und showmessage() im main thread ausführen.
Zuletzt geändert von mse am Mi 22. Nov 2017, 18:35, insgesamt 2-mal geändert.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Fehlermeldung bei Messagebox.

Beitrag von Socke »

Ja, alles was die grafische Oberfläche verwendet kann nur im Hauptthread laufen.

Das kannst du z.B. mit der Methode TThread.Synchronize machen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

haderlump
Beiträge: 185
Registriert: Fr 18. Jan 2013, 09:29
OS, Lazarus, FPC: Windows 10, Windows XP, Lazarus 1.6
CPU-Target: Celeron

Re: Fehlermeldung bei Messagebox.

Beitrag von haderlump »

Das Ganze hing mit meinem anderen Beitrag zusammen, der Timer blockierte die ganze Maschine

Gruß Fritz

Antworten