Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
2-1136911291
HITMAN1
2006-01-10 19:41
2006.01.29
Где можно найти информацию о значениях портов


15-1136983343
Yegorchic
2006-01-11 15:42
2006.01.29
Сортировка


1-1135510556
Мастер Ломастер
2005-12-25 14:35
2006.01.29
Помогите написать функцию создания класса!


15-1136885697
_RusLAN
2006-01-10 12:34
2006.01.29
Программа для создания дистрибутивов


2-1136976284
Новичек
2006-01-11 13:44
2006.01.29
Наименьшее значение Handle.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский