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

Delphi Sources



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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.09.2008, 14:57
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
Стрелка Мышка

Помогите пожалуйста написать программу, которая считает щелчки мыши по кнопке на форме за 10 секунд и выводит сообщение о результате. (Запоминает рекорд) Пожалуйста напишите подробный код и обьекты на форме. ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО!
  #2  
Старый 12.09.2008, 15:24
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var Count:Byte;
...
procedure TForm1.TimerOnTimer(Sender:TObject);
begin
  Timer.Enabled:=False;
end;
...
procedure TForm1.btnCountOnClick(Sender:TObject);
begin
  inc(Count);
end;
...
<i>(* Timer.Interval:=10*1000
    Timer.Enabled:=True
*)</i>
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
  #3  
Старый 12.09.2008, 18:54
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
По умолчанию

Извените, но код не подробный, разобраться не могу
  #4  
Старый 12.09.2008, 20:17
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Гляди) Кидаешь на форму кнопку Button1 и компонент Timer1, в свойствах Timer'а устанавливаешь знаечения:
Код:
1
2
Enabled в False // активность
Interval в 10000 // интервал срабатывания в мс
Затем пишешь нижеследующие проседуры
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<b>var</b>
  Count: Integer;
 
<b>procedure</b> TForm1.Button1Click(Sender: TObject);
<b>begin</b>
 Count := 0; // сброс
 Timer1.Enabled := True; // активация таймера
<b>end</b>;
 
<b>procedure</b> TForm1.Timer1Timer(Sender: TObject);
<b>begin</b>
 Timer1.Enabled := False; // выключаем таймер
// выводим результат
 ShowMessage(Format('По форме кликнуто %d раз(а)', [Count]));
<b>end</b>;
 
<b>procedure</b> TForm1.FormClick(Sender: TObject);
<b>begin</b>
// наращивем значение
 Inc(Count)
<b>end</b>;
  #5  
Старый 12.09.2008, 20:53
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
По умолчанию

Спасибо!!!

Последний раз редактировалось ***XXX***, 12.09.2008 в 21:05.
  #6  
Старый 12.09.2008, 21:00
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

В Object TreeView выбираешь форму, затем в Object Inspector'e переходишь на закладку Events, в ней выбираешь метод OnClick и кликаешь рядом мышкой по пустому полю))) В редакторе кода должна появится заготовка
  #7  
Старый 12.09.2008, 22:24
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
Радость

Подскажите пожалуйста, как сделать обратный отсчет(10 потом 9 и тд.)
желательно с полосой TProgressBar (убывание)
  #8  
Старый 12.09.2008, 23:17
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Ну можно прямо влоб:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  ATime: Integer = 10;
 
<b>procedure</b> TForm1.Timer1Timer(Sender: TObject);
<b>begin</b>
 Dec(ATime);
 ProgressBar1.Position := ATime;
 
  <b>if</b> ATime <= 0 <b>then</b>
  <b>begin</b>
   Timer1.Enabled := False;
   ShowMessage('Время истекло');
  <b>end</b>;
<b>end</b>;
 
при этом настройки такие
 Timer1.Interval = 1000
 ProgressBar1.Position = 10
 ProgressBar1.Max = 10
 ProgressBar1.Min = 0

Но вся эта конструкция будет двигатся рывками, поэтому можно поигратся значением и задержкой, например так:

Код:
1
2
3
4
5
6
ATime: Integer = 100;
и настройки
 Timer1.Interval = 100
 ProgressBar1.Position = 100
 ProgressBar1.Max = 100
 ProgressBar1.Min = 0
получаем более гладкий сдвиг, но идет набег запаздывания где-то 1-2 сек, так что решай сам)
  #9  
Старый 12.09.2008, 23:53
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
По умолчанию

куда строчку засунуть: ATime: Integer = 100;
  #10  
Старый 13.09.2008, 00:18
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

как глобальную переменную объяви
  #11  
Старый 13.09.2008, 00:25
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
Смущение

А таймер сбросить как???

Последний раз редактировалось ***XXX***, 13.09.2008 в 11:56.
  #12  
Старый 13.09.2008, 21:46
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Код:
1
ATime := 10;
  #13  
Старый 15.09.2008, 17:55
***XXX*** ***XXX*** вне форума
Прохожий
 
Регистрация: 12.09.2008
Сообщения: 15
Репутация: 10
По умолчанию

Спасибо, вы оказали мне неоценимую помощь!
Тему можно закрыть
Закрытая тема


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025