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:
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:
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:
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