Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.29;
Скачать: CL | DM;

Вниз

Компилятор говорит, что нет таймера   Найти похожие ветки 

 
TStas ©   (2005-07-21 19:19) [0]

Написал объект, как просто объект он отлично работает. Это потомок метки, только текст в ней бежит. Решил попробовать сделать из него компонент. Делал все, вроде, по Фленову.
Сохранил в отдельной папке, так компилятор говорит, что ему незнаком TTimer. Проверил, Таймер живет в ExtCtrls, который подключен. Что же ему не нравится?

Компонет хотел сделать для пробы.

uses
 SysUtils, Classes, Controls, StdCtrls, ExtCtrls;

type
 TRunningString = class(TLabel)
 private
   { Private declarations }
 FTimer:TTimer;
   FText: String;  //Текст, который и будет бежать
   FTextLength: Byte; //Длинна бегущего текста
   FTextVelosity: Byte; //Букв в секунду
   procedure SetText(const Value: String);
   procedure SetTextLength(const Value: Byte);
   procedure SetTextVelosity(const Value: Byte);
   procedure Move(Sender:TObject);
 protected
   { Protected declarations }
 public
   { Public declarations }
 constructor Create(AOwner:TComponent); override;
 destructor Destroy; override;
 procedure RunText; //Запускает бег текста
 procedure StopText; //Останавливает текст
 published
   { Published declarations }
 property Text:String read FText write SetText;
 property TextLength:Byte read FTextLength write SetTextLength;
 property TextVelosity:Byte read FTextVelosity write SetTextVelosity;
 
 
end;


 
DimaBr   (2005-07-22 19:16) [1]

Думаю, что в Create нужно создать этот таймер, иначе откуда ему взяться.


 
tesseract ©   (2005-07-23 20:12) [2]

У тебе в описании компонента нет никакого таймера.
в private добавь MyTimer:Ttimer

в
constructor TrunningString.Create;
begin
 inherited Create;
 MyTimer:=TTimer.Create;

end;

destructor TrunnigString.Destroy;
begin
MyTimer.free;
inherited Destroy;
end;


 
Джо ©   (2005-07-24 02:48) [3]

TStas ©   (21.07.05 19:19)
> Компилятор говорит, что нет таймера

Где и как говорит? В том куске кода, что ты привел (интерфейс класса), все OK.


 
Ilg   (2005-08-03 13:04) [4]

Действительно, надо в Create его создать и задать свойства.
Типа:
constructor TrunningString.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
FTimer:=TTimer.Create;
FTimer.Interval:=500;
...

end;

destructor TrunnigString.Destroy;
begin
FTimer.free;
inherited Destroy;
end;


2tesseract:
У него в Private есть таймер FTimer - посмотри внимательней (самая первая декларация)


 
Antonn ©   (2005-08-03 13:49) [5]

Ilg   (03.08.05 13:04) [4]
думаю еще можно при создании делать так:

if not (csDesigning in ComponentState) then begin
    FTimer:=TTimer.Create(nil);
    FTimer.Interval := 333;
    FTimer.Enabled := false;
    FTimer.OnTimer := OnTimerrrrr;
  end;


 
TStas ©   (2005-08-04 02:06) [6]

Вот что и интеренсно. Если пользоваться кодом, как обычным объектом, т. е. создавать программно, он работает, разумеется, что и таймер создается. Может, я что-то не правильно делал, когда добавлял его как компонент, но на форме в дизайн тайме он появлялся, но при запуске программы компилятор ругался, что таймера нет.
(csDesigning in ComponentState) у меня не было написано в Create


 
Antonn ©   (2005-08-04 06:40) [7]


> (csDesigning in ComponentState) у меня не было
> написано в Create

я бы добавил. по крайней мере в Дизайн тайме таймер не появлялся бы, а создавался "уже в екзешнике".

И вообще, сам с нуля компонент делал? может это чей то проект, и там в try..except стоит messagedlg("Нет таймера",mterror,[mbOK],0). Обработчик OnTimer покажи.


 
TStas ©   (2005-08-04 21:05) [8]

Писал, конечно, с нуля сам, да там просто все. Ошибку нашел и она глупейгая просто. Когда добавлял компонет, он добавился, но как CLX ну и оттуда остальное.



Страницы: 1 вся ветка

Текущий архив: 2006.01.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
6-1129584117
Lord_of_Darkness
2005-10-18 01:21
2006.01.29
Рдновременный прием TServerSocket ом файлов от нескольких клиенто


3-1133512349
salexn
2005-12-02 11:32
2006.01.29
Ассинхронное получение данных в TClientDataSet


15-1135334283
12DFBDD
2005-12-23 13:38
2006.01.29
ДКОИ он же EBCDIC


15-1136262014
Viktop
2006-01-03 07:20
2006.01.29
Работа с MS Access


3-1133388279
P.V.
2005-12-01 01:04
2006.01.29
транзакции