Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi warten mit timer (https://www.delphipraxis.net/47913-warten-mit-timer.html)

elcomportal 17. Jun 2005 20:08


warten mit timer
 
wie kann ich einfach xx Millisekunden warten und dann weitermachen im Programm. Die Zeit muss nicht so genau sein.

Hab es so probiert, geht aber net. ok wird scheinbar nie 1 und das Programm lässt sich nicht mehr bedienen / schliessen.

Delphi-Quellcode:
Procedure TForm1.senden(Sender: TObject);
begin
 try
  Serial1.Active:=true;
  str := '';
  shape1.brush.color := clred;
  str:= befehl + #13;
  label39.caption := str;
  befehl :='';
  n:=serial1.TransmittText(str);
  ok:=0;
  timer1.enabled := true; // Timer starten
  while ok=0 do // so lange wie ok 0 ist nichts machen
   begin
   end;
  timer1.enabled := false; timer stoppen
// hier kommt noch Code hin
  label33.caption := helpstr;
  if helpstr = 'ok' then
   shape1.brush.color := clgreen;
 except
        if Application.MessageBox('Kommunikationsfehler!','', MB_OK + MB_DEFBUTTON1) <> IDOK then
  raise;
  befehl :='';
  str:='';
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Timer1.Interval := 10;
  ok:=1;
end;
mfg
Torsten

jfheins 17. Jun 2005 20:10

Re: warten mit timer
 
Willkommmen in der DP, :party:


such mal nach DelayDelay, damit kannst du dein Programm eine bestimmte Anzahl Millisekunden anhalten ;)

Unplugged 17. Jun 2005 20:11

Re: warten mit timer
 
Zitat:

while ok=0 do // so lange wie ok 0 ist nichts machen
begin
end;
Da ist zumindest schonmal nen Schönheitsfehler drin. Setze mal innerhalb der Schleife ein
Application.ProcessMessages
dan reagiert dein Formular wenigstens wieder ;)

Daniel G 17. Jun 2005 20:13

Re: warten mit timer
 
Zitat:

Zitat von elcomportal
ok wird scheinbar nie 1 und das Programm lässt sich nicht mehr bedienen / schliessen.

Kunststück, da es in dieser Schleife festhängt:
Delphi-Quellcode:
  while ok=0 do // so lange wie ok 0 ist nichts machen
   begin
   end;
ein

Delphi-Quellcode:
Application.processmessages;
zwischen begin und end sollte bei einer globalen Variablen abhilfe schaffen.


Der
Daniel

100nF 17. Jun 2005 20:35

Re: warten mit timer
 
hi,

anstatt delay kannst du auch sleep(millisekunden) verwenden. mit sleep friert die ganze anwendung ein. ich glaube, mit delay nicht.

elcomportal 17. Jun 2005 20:49

Re: warten mit timer
 
Danke für die schnellen Antworten, es funzt jetzt. Habe sleep genommen.
Mfg
Torsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:12 Uhr.

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