Форум по программированию - Delphi Sources

 


   Сайт  
   Исходники  
   Компоненты  
   Статьи  
   FAQ  
   Поиск по исходникам  
   Футболки  

Вернуться   Форум по программированию - Delphi Sources > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.02.2015, 18:22
Dreammaster Dreammaster вне форума
Прохожий
 
Регистрация: 11.06.2014
Сообщения: 25
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию Как изменить условие/значение в case

Здравствуйте. Таким вот образом регулирую период кликов мышей:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   case Timer1.Interval of
      2000:   begin
                     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   
                     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);   
                     Timer1.Interval := 35000;
              end;

      35000: begin
                     //событие 1
                     mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   
                     mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);   
                     Timer1.Interval := 2000;
                  end;
   end
end;
Но "долгий промежуток" может быть не 35 сек, а 10 сек. или 500...И в идеале должен задаваться в Edit. Но Edit - это переменное значение, а case работает только const. Подскажите, как организовать переменный таймер? В идеале должно быть: клик(2сек)клик(Хсек)клик(2сек)клик(Хсек)), где Х - значение, вводимое пользователем.
Ответить с цитированием
  #2  
Старый 04.02.2015, 20:36
Аватар для lmikle
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 6,637
Репутация: 49086
По умолчанию

как-то так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);   
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);   

  if Timer1.Interval = 2000 
    Then Timer1.Interval := StrToIntDef(Edit1.Text,35000)
    Else  Timer1.Interval := 2000;
end;
Ответить с цитированием
  #3  
Старый 05.02.2015, 08:29
Dreammaster Dreammaster вне форума
Прохожий
 
Регистрация: 11.06.2014
Сообщения: 25
Версия Delphi: RAD Studio XE3
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
как-то так:
Сделал следующим образом. Работает:
Код:
Secund: strtointdef(edit1.text)*1000;
inc(i);
if odd(i) then
  begin
   mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
   mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
   Timer1.Interval := Secund;
   end
else
 begin
  mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
  mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
  Timer1.Interval := 2000;
 end;
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2016

ВКонтакте   Twitter   Facebook