PDA

Просмотр полной версии : помагите пожалуста ... задержка!


Shizo
19.09.2009, 01:39
собсна сабж. написал такой вот скрипт на заточку все просто дальше не куда ... тока вот косяк один нада чтобы пакеты уходили не сразу 3х пакета на заточку (см. выделенный код. красным) а каждые 150 мс примерно ну не важно!
const
Name='***';
var
timer:TTimer;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=1500;
timer.OnTimer:=@fireTimer;
timer.enabled:=true;
end;
procedure Free;
begin
timer.free;
end;
procedure fireTimer(Sender: TObject);
begin
buf:=HStr('0C C4 E8 02 10 00 00 00 00 ');
SendToServer;
buf:=HStr('43 4C 00 EE 68 02 10');
SendToServer;
buf:=HStr('65 EE 68 02 10 00 00 00 00');
SendToServer;
end;
begin
if FromServer and (ConnectName=Name) and (pck = HStr('***'))
then begin
timer.enabled:=false;
end;

end.

TAMBIK
19.09.2009, 09:40
используй
Оператор варианта CASE
Оператор варианта необходим в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные операторы (простые или составные). Если вариантов всего два, то можно обойтись и оператором IF. Но если их, например, десять? В этом случае оптимален оператор варианта CASE.
Синтаксис оператора CASE:
CASE УправляющаяПеременнаяИлиВыражение OF
НаборЗначений1 : Оператор1;
НаборЗначений2 : Оператор2;
НаборЗначений3 : Оператор3;
. . .
НаборЗначенийN : ОператорN
ELSE АльтернативныйОператор
END;
Между служебными словами CASE и OF должна стоять переменная или выражение (оно вычисляется при исполнении оператора CASE) целочисленного или любого порядкового типа. Набор значений – это конкретные значения управляющей переменной или выражения, при которых необходимо выполнить соответствующий оператор, игнорируя остальные варианты. Если в наборе несколько значений, то они разделяются между собой запятой.. Можно указывать диапазоны значений, например, 0..9 – все значения от нуля до девяти. Наборы значений и диапазоны можно комбинировать. Между набором значений и соответствующим ему оператором обязательно ставится символ “:”. Значения в каждом наборе должны быть уникальными, т.е. они могут появиться только в одном варианте. Пересечение наборов значений для разных вариантов является ошибкой, и она будет замечена компилятором.
Оператор (Оператор1, Оператор2, …) в конкретном варианте может быть как простым, так и составным.
Пример 1.
PROGRAM Example_CASE_1;
VAR A : integer;
BEGIN
Write(‘Введите оценку: ‘); Read(A);
CASE A OF
2 : Write(‘неудовлетворительно’);
3 : Write(‘удовлетворительно’);
4 : Write(‘хорошо’);
5 : Write(‘отлично’)
END;
END.
Здесь в зависимости от значения переменной А на экран выводится наименование оценки.

mks
19.09.2009, 09:56
я не осилил все прочитать, но думаю тамбик не врет)