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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2011, 02:17
Аватар для Fantomas_RUS
Fantomas_RUS Fantomas_RUS вне форума
Прохожий
 
Регистрация: 12.10.2010
Сообщения: 47
Репутация: 11
Восклицание Изменение класса TTimer

Такой вопросик. Можно ли создав свой класс на основе TTimer написать свой обработчик процедуры onTimer. Как это сделать, что то у меня выскакивают ошибки при использовании моего класса.
Код:
type
TLabelTimer = class(TTimer)
private
    A:boolean;
    T1:TTimer;
protected
    procedure onTimer(Component: TLabeledEdit);
    procedure Ed_L_Style_Red(Component: TLabeledEdit);
    procedure Ed_L_Style_Custom(Component: TLabeledEdit);
public
  constructor Create(mSec:Integer;Form:TForm;LabelEdit:TComponent);

published

end;

THintTimer = class(TTimer)
private
procedure HintTLabeledEdit(Component: TLabeledEdit;S:String;Form:TForm);
protected
H:THintWindow;
Lab:TLabelTimer;
HintRec:TRect;
procedure onTimer(Component: TLabeledEdit);
procedure Hint_Clear();
public
  constructor Create(mSec:Integer;Form:TForm;LabelEdit:TComponent);// override;
  procedure Start(Massage:string);
//  destructor Destroy; override;
published

end;

Код:
{ THintTimer }

constructor TLabelTimer.Create(mSec:Integer;Form:TForm;LabelEdit:TComponent);
begin
  inherited Create(Form);
Self.Interval:=mSec;
A:=false;// ïåðåêëþ÷àëêà
end;

procedure TLabelTimer.Ed_L_Style_Custom(Component: TLabeledEdit);
begin
Component.EditLabel.Font.Color:=$00000000;
Component.EditLabel.Font.Style:=Component.EditLabel.Font.Style-[fsBold];
end;

procedure TLabelTimer.Ed_L_Style_Red(Component: TLabeledEdit);
begin
Component.EditLabel.Font.Color:=$000000FF;
Component.EditLabel.Font.Style:=Component.EditLabel.Font.Style+[fsBold];
end;

procedure TLabelTimer.onTimer(Component: TLabeledEdit);
begin
  inherited Timer;
  if A then
  begin
  Ed_L_Style_Red(Component);
  A:=false;
  end
else
  begin
  Ed_L_Style_Custom(Component);
  A:=true;
  end;
end;

procedure THintTimer.onTimer(Component: TLabeledEdit);
begin
Hint_Clear;
Lab.Ed_L_Style_Custom(Component);
Destroy;
end;

procedure THintTimer.Hint_Clear;

begin
if h<>nil then
  H.ReleaseHandle;
end; 

procedure THintTimer.Start(Massage:string);
begin
H.ActivateHint(HintRec,Massage);
Self.Enabled:=true;
Lab.Enabled:=true;
end;

{ THintTimer }

constructor THintTimer.Create(mSec:Integer;Form:TForm;LabelEdit:TComponent);
begin
  inherited Create(Form);
H:=THintWindow.Create(Form);
Lab:=TLabelTimer.Create(mSec,Form,LabelEdit);
end;

procedure THintTimer.HintTLabeledEdit(Component: TLabeledEdit;S:String;Form:TForm);
begin
HintRec.Left:=Form.Left+Component.Left;
HintRec.Top:=Form.Top+Component.Top-20;
HintRec.Right:=Form.Left+Component.Left+Length(S)*5;
HintRec.Bottom:=Form.Top+Component.Top+10;
end;
Кто знает, может по другому надо этот компонент обявлять? Я его обявляю так
Код:
var Hint:THintTimer;
Hint.Start('gggggggggggggg');
Hint.OnTimer(Self);
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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