Topic: пауза в цикле

нужна пауза в цикле

sleep тормазить всю программу

Re: пауза в цикле

Можете воспользоваться таймером (TTimer), задав ему необходимый интервал.

Dmitry.

3 (edited by sibprogsistem 2019-06-17 12:39:14)

Re: пауза в цикле

DriveSoft wrote:

Можете воспользоваться таймером (TTimer), задав ему необходимый интервал.

вот-так все заработало как нужно

procedure datainapp;
var
i,c,a:integer;
d:integer = 20000;
list:TStringList;
url: string = 'https://гк.php';
Tlogin:TIniFile;
begin
 a := GetTickCount;
 Tlogin:=TIniFile.Create(ExtractFilePath (ParamStr (0))+'setting\online.ini');
 list:=TStringList.Create;
 list.Text:= SQLExecute( 'SELECT group_concat(id, char(13) || char(10)) FROM servise WHERE appUpdate=1' );
 c:=list.Count-1;
 datain:=createoleobject('WinHttp.WinHttpRequest.5.1');
 timerDataIn:=TTimer.Create(frmLogin);
 timerDataIn.Enabled:=True;
 timerDataIn.Interval:=1000;
 timerDataIn.OnTimer:=@SDataApp;
 for i:=0 to c do
  begin
  datain.open('POST', url, True);
  datain.SetRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  datain.send('passwor=678'+
  '&login='+Tlogin.ReadString('online','login','')+'&pass='+Tlogin.ReadString('online','password','')+
  '&sservice='+Tlogin.ReadString('online','IDService','')+'&idapp='+list[i]+
  '&firstnameapp='+sqlexecute('SELECT firstNameClient FROM servise WHERE id='+list[i])+
  '&lastnameapp='+sqlexecute('SELECT lastNameClient FROM servise WHERE id='+list[i])+
  '&telephonapp='+sqlexecute('SELECT telephonClient FROM servise WHERE id='+list[i])+
  '&dateapp='+sqlexecute('SELECT dateApplcation FROM servise WHERE id='+list[i])+
  '&timeapp='+sqlexecute('SELECT timeApplication FROM servise WHERE id='+list[i])+
  '&descriptionapp='+sqlexecute('SELECT descriptionATCsWords FROM servise WHERE id='+list[i])+'');
  repeat
     Application.ProcessMessages;
     if SDataApp(list[i])then begin
      SQLExecute('UPDATE servise SET appUpdate="0" WHERE id = '+list[i]);
     break;
     end;
   until (GetTickCount - a) >= d;
  end;
  timerDataIn.Enabled:=False
end;