IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> В чём ошибка?, не мигает, а должно...
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Вобщем сама процедура должна подавать на порт 888 попеременно 255 и 0. Включение и отключение одной кнопкой. В режиме отладки всё нормально, а как запускаю то получается что первый сигнал подаётся, а потом... фигня какаято mad.gif
Код

procedure TForm1.Button3Click(Sender: TObject);
begin
  if clipping then
    begin
      button3.Caption:='On';
      clipping:=False;
      exit;
    end
  else
    begin
      button3.Caption:='Off';
      clipping:=true;
      while clipping do
        begin
          out32(888,255);
          sleep(100);
          application.ProcessMessages;
          out32(888,0);
        end;
    end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 91
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Я думаю вся ошибка из-за:
begin
button3.Caption:='Off';
clipping:=true;
while clipping do
begin
out32(888,255);
sleep(100);
application.ProcessMessages;
out32(888,0);
end;
end;
:
1) Цикл в кнопке - Это очень ПЛОХО, как останавливать его собираешься, когда он не закончился!?!
2) тем более после
out32(888,0);
-нет задержки, идёт сразу
out32(888,255);
=> не изменяет состояние.

Предлагаю попробовать через таймер: Кнопка - запускает и останавливает таймер, а таймер (с интервалом 100 мс):

Var
SendMM: Boolean; // Глобальная переменная
...
Procedure TXXX.Timer1.Timer(Sender: TObject);
Begin
SendMM := Not SendMM; // Изменяем состояние флага
If SendMM Then // В зависимости от него, за одно срабатывание таймера, устанавливаем нужное значение...
out32(888,255)
Else
out32(888,0);
End;
- код сырой, тк писал без Delphi...
cool.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 13:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name