![]() |
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:
Da das aber unsauber ist, möchte ich es gerne sicher machen. Hierzu muß ich doch
m_mainForm.TextBoxReceived.Text := m_mainForm.TextBoxReceived.Text + newText;
BeginInvoke der TextBox verwenden, oder? Also habe es so versucht:
Delphi-Quellcode:
Dann muss ich ja noch irgendwie die Funktion updateTextInMainForm mit dem Delegaten verknüpfen, oder?
type
UpdateMainFormCallback = procedure(text:string) of object; //Der Delegat TServerMainFormManager = class private m_mainForm : TServerMainForm; m_UpdateMainForm : UpdateMainFormCallback; ... procedure updateTextInMainForm(text:string); ... Dies habich im Constructor der TServerMainFormManager Klasse getan:
Delphi-Quellcode:
Die Funktion updateTextInMainForm sieht so aus:
m_UpdateMainForm := self.updateTextInMainForm;
Delphi-Quellcode:
So jetzt müsste ich doch nur noch irgendwie das BeginInvoke aufrufen, aber das klappt nicht.
procedure TServerMainFormManager.updateTextInMainForm(text: string);
begin m_mainForm.TextBoxReceived.Text := m_mainForm.TextBoxReceived.Text + text; end; Hab es so versucht:
Delphi-Quellcode:
Könnt ihr mir bitte helfen die Fehler zu finden und das Teil zum laufen zu bringen?
m_mainForm.TextBoxReceived.BeginInvoke(m_UpdateMainForm,'TEXT');
Danke, winx Ach ja: hab es auch Ach ja: hab es auch ![]() |
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