Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Exception mit der Meldung 'Meldungen müssen im Haupt-UI-Thread angezeigt werden.' (https://www.delphipraxis.net/194781-exception-mit-der-meldung-meldungen-muessen-im-haupt-ui-thread-angezeigt-werden.html)

Fishermans 4. Jan 2018 11:08

Exception mit der Meldung 'Meldungen müssen im Haupt-UI-Thread angezeigt werden.'
 
Hallo,

ich habe Eine Firemonkey Applikation in der ich einen Thread erzeuge.
Nun möchte ich eine einfach Ausgabe des Threads mit Synchronize vornehmen.

Delphi-Quellcode:
type
  TShowInMainForm = procedure(const Content: String) of object;

  TJobListThread = class(TThread)
  private
    { Private-Deklarationen }
    Warte : Boolean;
    FEvent : TEvent;
    FShowInMainForm : TShowInMainForm;
    FContent : String;
  protected
    procedure Execute; override;
  public
    procedure SyncShowInMainForm;
    Constructor Create(Suspended: Boolean);

    property ShowInMainForm : TShowInMainForm read FShowInMainForm write FShowInMainForm;
  end;

procedure TJobListThread.SyncShowInMainForm;
begin
  if Assigned(FShowInMainForm) Then Begin
    FShowInMainForm(FContent);
  End;
end;
Der Aufruf erfolgt mit

Delphi-Quellcode:
Au
  FContent := TSetDeviceTemp(JobList[i]).VarName +'PeerId: '+
                             IntToStr(TSetDeviceTemp(JobList[i]).PeerId);
  Synchronize(SyncShowInMainForm);
Ich hoffe dass das Code Fragment ausreichend ist, ist ja nichts besonderes.
Bisher hat das in meinen Programmen immer fehlerfrei auf diese art funktioniert, nun kommt in meinem
neuen Programm diese Fehlermeldung. Zwar nicht immer, nur ab und zu und ich habe keine Ahnung wieso...

Habe gerade das Update auf Version 10.2.2 gemacht, ich hoffe nicht, dass es daran liegt...
Der Fehler tritt unter Windows auf.


Viele Grüße

Elmar

Fishermans 4. Jan 2018 12:01

AW: Exception mit der Meldung 'Meldungen müssen im Haupt-UI-Thread angezeigt werden.'
 
Oh bin ich ein ESEL!!!! :oops:

Ich habe eine Procedure innerhalb des Threads aufgerufen in der im Fehlerfalle
TDialogService.ShowMessage('...'); aufgerufen wurde, das ist natürlich die Ursache gewesen...
Immer wenn es Verbindungsprobleme mit dem XML-RPC Server gab trat dann diese Fehlermeldung auf

Grüße

Elmar


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 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