Einzelnen Beitrag anzeigen

winx

Registriert seit: 14. Jun 2005
265 Beiträge
 
#1

In Thread auf WindowsForm zugreifen (Invoke)?

  Alt 10. Nov 2006, 10:08
Guten Morgen,

ich habe ein WindowsForm, mit einem EditFeld. Des weiteren ein Objekt, welches ein Thread-Objekt enthält.
Ich möchte nun im execute dieses Threads Werte in das EditFeld schreiben.

Wie mache ich das ganze sauber?

Danke,
winx

Delphi-Quellcode:
type
  TStateWatcherThread = class

  private
    m_MainForm : TMainForm;
    m_WatcherThread : Thread;

    m_ThreadRunning:boolean;

    procedure running();

  public
    constructor Create(form : TMainForm);
    procedure start();
    procedure stop();
  end;

implementation

constructor TStateWatcherThread.Create(form : TMainForm);

begin
  inherited Create();
  m_MainForm := form;
  m_WatcherThread := Thread.Create(running);
end;



procedure TStateWatcherThread.running;
var state : TLaserState;
     i : integer;
begin
  i:=0;
  while (m_ThreadRunning) do begin

    try
     i := i+1;
     m_MainForm.EditText.Text := 'Wert: '+i.toString();

    except

    end;

    Thread.Sleep(1000);
  end;


end;


procedure TStateWatcherThread.start;
begin
  self.m_WatcherThread.Start();
  m_ThreadRunning := true;
end;

procedure TStateWatcherThread.stop;
begin
  m_WatcherThread.Suspend();
  m_ThreadRunning := false;
end;
Dankeschön für eure Tipps
  Mit Zitat antworten Zitat