Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ein Thread der alle 60 sekunden ein Label aktualisiert.... (https://www.delphipraxis.net/23315-ein-thread-der-alle-60-sekunden-ein-label-aktualisiert.html)

ak1 1. Jun 2004 12:46


ein Thread der alle 60 sekunden ein Label aktualisiert....
 
Hallo,

wie sieht ein Thread aus, der alle 60 sekunden ein bestimmtes Label oder eine Form aktualisiert (repaint).

Gruß

Meflin 1. Jun 2004 12:47

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
dazu solltest du wohl besser einen timer mit intervall 60000 verwenden!

Luckie 1. Jun 2004 12:49

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Schick ihn für 60 Sekunden schlafen mit Sleep.

MathiasSimmack 1. Jun 2004 13:58

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Und wenn in der Zwischenzeit mit dem Programm noch gearbeitet werden (können?) soll?
Da wäre ein Timer bzw. ein Thread doch wahrscheinlich besser als sleep.

Alexander 1. Jun 2004 13:59

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Ich denke Luckie meint den Thread und nicht das Progamm ;-)

ak1 1. Jun 2004 14:41

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Bin totaler Thread-Anfänger und habe da ein Problem:

Die beiden Threadklassen:

Code:
type TStartThread = class(TThread)
  private
  protected
    procedure Execute;override;
  end;

  type TwaitThread = class(TThread)
  private
  protected
    procedure Execute;override;
  end;
Auf Knopfdruck werden beide Threads durchgeführt:
Code:
starten:= TStartThread.Create(true);

      with starten do begin
        Execute;
        resume;
      end;

      warten:=TWaitThread.Create(true);
      with warten do begin
        Execute;
        resume;
      end;
die Execute Prozeduren sehen so aus:

Code:
procedure TwaitThread.Execute;
begin
      sleep(6000);
      frmwait.Repaint;
end;

procedure TStartThread.Execute;
begin
  berechne;
end;
Jetzt habe ich das Problem, dass die Form (frmwait) nicht alle 6 Sekunden neu gezeichnet wird.
Was müsste ich noch machen, damit wirklich alle 6 sekunden ein repaint gemacht wird, während die Berechnung der prozedur "berechne" läuft?
Es wird in beiden Threads auf VCL-Komponenten zugegriffen.

Luckie 1. Jun 2004 14:51

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Zitat:

Zitat von MathiasSimmack
Und wenn in der Zwischenzeit mit dem Programm noch gearbeitet werden (können?) soll?

Ich rede natürlich von dem Thread. :roll:

@

ak1 1. Jun 2004 15:23

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Kann mir denn niemand helfen?

MathiasSimmack 1. Jun 2004 15:31

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Ich habe mich gerade mit einem Thread herumgeschlagen, aber der war nonVCL.

Ultimator 1. Jun 2004 15:39

Re: ein Thread der alle 60 sekunden ein Label aktualisiert..
 
Wenn du warten willst, und trotzdem weiterarbeiten musst, dann nimm das hier:
Delphi-Quellcode:
procedure Wait(time:word);
var start: integer;
begin
start := GetTickCount;
while GetTickCount - start <= time do
Application.ProcessMessages;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz