Einzelnen Beitrag anzeigen

bennle

Registriert seit: 22. Jul 2005
Ort: Kehl
139 Beiträge
 
Delphi 2007 Professional
 
#1

Progressbar/Label in einem Thread aktualisieren

  Alt 21. Okt 2007, 16:06
Hallo,
Ich habe mal folgenden simplen Code erstellt:
Delphi-Quellcode:
function ThreadDoit(p: Pointer): Integer;
begin
  //TLabel Beschreiben
  Form5.Label5.Caption := 'Tue das ...';
  //Funktion aufrufen
  Form5.Function1();
  //TLabel Beschreiben
  Form5.Label5.Caption := 'Erledige das 2te...';
  //Funktion aufrufen
  Form5.Function2();
//Resultat
  result := 0;
end;
procedure TForm5.Begin(Sender: TObject);
var
  hThread : THandle;
  ThreadID : Cardinal;
  WaitResult : DWORD;
  Msg : TMsg;
begin
  hThread := BeginThread(nil, 0, @ThreadDoit, nil, 0, ThreadID);
  repeat
    WaitResult := MsgWaitForMultipleObjects(1, hThread, False, INFINITE, QS_ALLINPUT);
    if WaitResult = WAIT_OBJECT_0 + 1 then
    begin
      while PeekMessage(Msg, Handle, 0, 0, PM_REMOVE) do
      begin
        TranslateMessage(Msg);
        DispatchMessage(Msg);
      end;
    end;
  until WaitResult = WAIT_OBJECT_0
end;
Leider werden bei mir keine Formelemente erneuert/beschrieben. Weder die Progressbar noch das Label erhält die gewünschte Eigenschaft zugeordnet.
Was mach ich falsch oder wie bekomme ich das zum laufen??
Gruß
Benny
  Mit Zitat antworten Zitat