Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

OnTimer [D7]


fusic ©   (28.02.18 17:02

Помогите решить задачку.
Есть компонент Timer, который для удобства нужно слегка доработать:
-добавить пару методов - это легко получилось !
-и добавить свойство Count=число срабатываний таймера с момента последнего старта. Вот тут засада.
Поле добавил. Но как его инкрементировать (внутри компонента) одновременно с наступлением события OnTimer ?
Помогите пожалуйста !


Rouse_ ©   (28.02.18 17:12[1]

type
 TMyTimer = class(TTimer)
 private
   FCounter: Integer;
 protected
   procedure Timer; override;
 published
   property Counter: Integer read FCounter;
 end;

{ TMyTimer }

procedure TMyTimer.Timer;
begin
 inherited;
 Inc(FCounter);
end;


fusic ©   (28.02.18 17:27[2]

Спасибо. Работает.

unit TimerCnt;

interface

uses
 SysUtils, Classes, ExtCtrls;

type
 TTimerCnt = class(TTimer)
 private
   FCount:cardinal;
 protected
   procedure Timer; override;
 public
   procedure Star;
   procedure Stop;
   procedure ReStart;
   constructor Create (AOwner : TComponent);override;
 published
   property Count : cardinal read FCount write FCount;
 end;

procedure Register;

implementation

procedure TTimerCnt.Timer;
begin
 inherited;
 Inc(FCount);
end;

constructor TTimerCnt.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
FCount:=0;
end;

procedure Register;
begin
 RegisterComponents('Samples', [TTimerCnt]);
end;

procedure TTimerCnt.Star;
begin
FCount:=0;
Enabled := true;
end;

procedure TTimerCnt.Stop;
begin
Enabled := false;
end;

procedure TTimerCnt.ReStart();
begin
Enabled := false;
Enabled := true;
end;

end.


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо