Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Prism Auf Controls aus einem zweiten Thread zugreifen BeginInvoke? (https://www.delphipraxis.net/82379-auf-controls-aus-einem-zweiten-thread-zugreifen-begininvoke.html)

winx 12. Dez 2006 09:12


Auf Controls aus einem zweiten Thread zugreifen BeginInvoke?
 
Guten Morgen,

ich habe ein Formular mit einer TextBox drauf.
Nun möchte ich aus einem 2.Thread auf das Formular zugreifen.
In diesem habe ich eine MemberVariable m_mainForm.

Bisher habe ich es so gemacht:
Delphi-Quellcode:
m_mainForm.TextBoxReceived.Text := m_mainForm.TextBoxReceived.Text + newText;
Da das aber unsauber ist, möchte ich es gerne sicher machen. Hierzu muß ich doch
BeginInvoke der TextBox verwenden, oder?

Also habe es so versucht:

Delphi-Quellcode:
type

  UpdateMainFormCallback = procedure(text:string) of object; //Der Delegat

  TServerMainFormManager = class
  private
    m_mainForm : TServerMainForm;
    m_UpdateMainForm : UpdateMainFormCallback;
    ...
    procedure updateTextInMainForm(text:string);
  ...
Dann muss ich ja noch irgendwie die Funktion updateTextInMainForm mit dem Delegaten verknüpfen, oder?
Dies habich im Constructor der TServerMainFormManager Klasse getan:
Delphi-Quellcode:
m_UpdateMainForm := self.updateTextInMainForm;
Die Funktion updateTextInMainForm sieht so aus:
Delphi-Quellcode:
procedure TServerMainFormManager.updateTextInMainForm(text: string);
begin
 m_mainForm.TextBoxReceived.Text := m_mainForm.TextBoxReceived.Text + text;
end;
So jetzt müsste ich doch nur noch irgendwie das BeginInvoke aufrufen, aber das klappt nicht.
Hab es so versucht:

Delphi-Quellcode:
m_mainForm.TextBoxReceived.BeginInvoke(m_UpdateMainForm,'TEXT');
Könnt ihr mir bitte helfen die Fehler zu finden und das Teil zum laufen zu bringen?

Danke,
winx

Ach ja: hab es auch Ach ja: hab es auch hier gepostet gepostet


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