Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.16.83.150] |
|
Сообщ.
#1
,
|
|
|
Нужно создать компонент на базе TLabel который показывал бы системное время и желательно в отдельном потоке.
Никто не подскажет как мне это реализовать? |
Сообщ.
#2
,
|
|
|
Надо создать таймер (можно TTimer) и обработать OnTimer примерно так:
procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption:=TimeToStr(Time) end; |
Сообщ.
#3
,
|
|
|
Нее, это я всё понимаю. Но у меня задание сделать компонент на Delphi. Вот.
|
Сообщ.
#4
,
|
|
|
TTimeLabel = class (TLabel)
private SystTimer: TTimer; procedure SystTimerTimer(Sender: TObject); protected property Caption; //это чтобы нельзя было его менять из вне public constructor Create(AOwner: TComponent); override; destructor Destroy; override; published {здесь надо переписать все свойства обчного TLabel} property AutoSize; ....... property Width; end; constructor TTimeLabel.Create(AOwner: TComponent); begin inherited Create(AOwner); SystTimer:=TTimer.Create; SystTimer.OnTimer:=SystTimerTimer; SystTimer.Interval:=100; //интервал обновления; SystTimer.Enabled:=True; end; destructor TTimeLabel.Destroy; begin SystTimer.Free; inherited Destroy; end; procedure TTimeLabel.SystTimerTimer(Sender: TObject); begin Caption:=TimeToStr(Time); Invalidate; end; вроде так. если нигде не ошибся. |
Сообщ.
#5
,
|
|
|
Вроде работает
|