Auf Controls aus einem zweiten Thread zugreifen BeginInvoke?
spacer
Autor Nachricht
winx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 249



BeitragVerfasst: Di 12.12.06 11:17 
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:
ausblenden Delphi-Quelltext markieren
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:

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type

  UpdateMainFormCallback = procedure(text:stringof 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:
ausblenden Delphi-Quelltext markieren
1:
m_UpdateMainForm := self.updateTextInMainForm;


Die Funktion updateTextInMainForm sieht so aus:
ausblenden Delphi-Quelltext markieren
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:

ausblenden Delphi-Quelltext markieren
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
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
home home