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-Quelltext
1:
| 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-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| type
UpdateMainFormCallback = procedure(text:string) of object; 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-Quelltext
1:
| m_UpdateMainForm := self.updateTextInMainForm; |
Die Funktion updateTextInMainForm sieht so aus:
Delphi-Quelltext
1: 2: 3: 4:
| 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-Quelltext
1:
| 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
hier gepostet