Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как назначить обработчик для события? [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо