![]() |
[Indy10] VCL Aufruf im OnExecute Ereigniss
Hey,
ich möchte gerne ein Formular aus dem OnExecute Ereigniss des IdTCPServers heraus modal öffnen und warten, bis es geschlossen wurde. Da das Ereigniss in einem Thread abläuft kommt es zu Fehlern mit der VCL, da diese ja nicht threadsicher ist. Wie kann ich jetzt das Formular trotzdem anzeigen? Habe folgendes probiert, was aber nicht funktioniert, da ich den Fehler "Zugriff verweigert" und beim Beenden mehrere diverse Exceptions erhalte:
Delphi-Quellcode:
Vielen Dank
procedure TAuthThread.DoShow;
begin TfrmAuth(Form).ShowModal; end; procedure TAuthThread.Execute; begin inherited; Synchronize(DoShow); end; function TfrmMain.AuthServerDlg(CData: TClientData): Boolean; var frmAuth: TfrmAuth; tAuth: TAuthThread; begin frmAuth := TfrmAuth.Create(Application); try frmAuth.ClientData := Pointer(CData); tAuth := TAuthThread.Create(true); tAuth.FreeOnTerminate := true; tAuth.Form := Pointer(frmAuth); tAuth.Resume; // ersetze ich dies mit WaitForSingleObject friert alles ein; Tag wird im OnClose des Forms auf 1 gesetzt while frmAuth.Tag = 0 do begin Application.ProcessMessages; end; Result := frmAuth.Success; finally frmAuth.Free; end; end; |
Re: [Indy10] VCL Aufruf im OnExecute Ereigniss
|
Re: [Indy10] VCL Aufruf im OnExecute Ereigniss
Danke, :thumb: das probier ich direkt mal aus!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 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-2025 by Thomas Breitkreuz