![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как назначить обработчик для события? [D6]
rainy_day © (2005-03-04 06:34:00)КОд такой
type Ttakt=class (TObject)
......
interval:integer;
timer:TTimer;;
private
......
procedure constr;
procedure ontimeк(Sender: TObject);
constructor create;
public
end;
Как сделать, чтобы при возникновении события таймера ontime выполнялась процедура ontimer.
ТО есть как можно переназначить обработчик для стандартного события.
rainy_day (2005-03-04 07:32:00) [1]Спасибо
Defunct (2005-03-04 07:18:00) [2]rainy_day © (04.03.05 06:34)
Сделайте проще
type
TTakt=class( TTimer)
protected
procedure Timer;override;
end;
procedure TTakt.Timer;
begin
{ делаем то что надо }
end;
XP (2005-03-04 06:58:00) [3]
constructor TTakt.Create;
begin
inherited Create;
Timer := TTimer.Create(nil);
Timer.OnTimer := ontimek;
end;
И вынести объявлениеконструктора constructor Create в раздел pulic, иначе он будет невидим в других модулях (хотя, может, именно такая цель и преследуется?).
И еще. Для Interval (по контексту вопроса) не надо заводить еще одну private переменную. Используйте Timer.Interval
private
procedure SetInterval(a_iInterval: integer);
function GetInterval: integer;
public
property Interval: integer read GetInterval write SetInterval;
procedure TTakt.SetInterval(a_iInterval: integer);
begin
Timer.Interval := a_iInterval;
end;
function TTakt.GetInterval: integer;
begin
Result := Timer.Interval;
end;