PDA

Просмотр полной версии : ТАЙМЕР на 4 пакета


se_demon
08.05.2008, 23:02
Долго пытался разобраться, просмотрев все примеры, но так и не смог добиться...
Таймер, как же его всё таки сделать?
Прошу выложить полный код скрипта, который с интервалом в 1 секунду будит выполнять по кругу 4 пакета:

----пауза 1 сек.----
buf:=hstr('1B 01 00 00 00');
----пауза 1 сек.----
buf:=hstr('1B 02 00 00 00');
----пауза 1 сек.----
buf:=hstr('1B 03 00 00 00');
----пауза 1 сек.----
buf:=hstr('1B 04 00 00 00');
____________________________
ПОмогите, пожалуйста.
(не пишите лишнего, ОЧЕНЬ многим пользователям этот пример поможет)

KeL
09.05.2008, 11:27
Что не ясного, книжку в руки и вперед :)
//хотя не пойму, а тебе не легче делать делай (задержку) и зициклить процес

type
TForm1 = class(TForm) //кусок из примитивной
Panel1: TPanel; //проги - секундомер,
Timer1: TTimer; //где используется таймер
procedure Timer1Timer(Sender: TObject);
var
Form1: TForm1;min,sec:integer;
procedure TForm1.Timer1Timer(Sender: TObject);
var str,st:string;
begin
if sec = 59 then //вырезка из просто таймера
begin //тебе все не надо главное вот делаеш таймер
inc(min); //а там уже если секунды/минуты равны, тогда...
sec:=0;
end
else
if sec mod 2=0
then st :=' : '+st
else st :=' '+st;
inc(sec);
if Length(st) = 1 then st:='0'+st;
str:=str+ IntToStr (sec);
st:=st+ IntToStr (min);
if Length(str) = 1 then str:='0'+str;
if sec mod 2=0
then str :=' : '+str
else str :=' '+str;
str:=IntToStr (min) +str;
Panel1.Caption:=str;
end

Zergatul
10.05.2008, 19:38
Что не ясного, книжку в руки и вперед :)
//хотя не пойму, а тебе не легче делать делай (задержку) и зициклить процес

type
TForm1 = class(TForm) //кусок из примитивной
Panel1: TPanel; //проги - секундомер,
Timer1: TTimer; //где используется таймер
......


Код не полный, не проинициализироан таймер.


var
Timer1 : TTimer;
q : Integer; // счетчик
procedure Init;
begin
Timer1 := TTimer.Create(nil);
Timer1.Interval := 1000; // задержка таймера 1к мс
Timer1.Enabled := False;
Timer1.OnTimer := @OnTimer; // имя процедуры, которая будет выполнятся при проходе таймера
end;
procedure Free;
begin
Timer1.Free;
end;
procedure OnTimer;
begin
// здесь код, который должен повторятся
Inc(q);
if q = 4 then // если выполнилось уже 4 раза, то останавливаем таймер
Timer1.Enabled := False;
end;
begin
if {умова запуска таймера} then
begin
Timer1.Enabled := True;
q := 0; //счетчик ставим у 0
end;
end.

-=Ma}{imuS=-
12.06.2008, 11:34
if {умова запуска таймера} then

нипонял что там должно было быть написано?

NLObP
12.06.2008, 12:08
нипонял что там должно было быть написано?

Условие запуска таймера. Почитай книжки по паскалю, многое станет понятно

этот кусочек надо исправить наtype
Timer1 : TTimer;
q : Integer; // счетчик
var
Timer1 : TTimer;
q : Integer; // счетчик