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

Вниз

Создание компонента   Найти похожие ветки 

 
Radgar ©   (2005-08-05 19:33) [0]

Я создал свой первый компонента (почти), и у меня возник такой вопрос: Компонент мой основанна TCustomControl и состоит из нескольких TImage, так вот эти Timage у меня создаются в конструкторе Create, и создаются только если я сам создаю этот компонент в ран-тайм, а хотелось бы чтобы они создавались когда я заранее кидаю комп. на форму. Подскажите, пожалуйста, как это сделать?


 
Юрий Зотов ©   (2005-08-05 19:45) [1]

Покажите объявление класса, код конструктора и деструктора.


 
Radgar ©   (2005-08-05 19:52) [2]


> Юрий Зотов ©   (05.08.05 19:45) [1]
> Покажите объявление класса, код конструктора и деструктора.


TMyComponent = class
 Image:TImage;
 private
   { Private declarations }
 protected
   { Protected declarations }
 public
   constructor Create(AOwner:TComponent);
   destructor Destroy;
   { Public declarations }
 published
   { Published declarations }
 end;

constructor TMyComponent.Create(AOwner:TComponent);
begin
 inherited Create(Aowner);
 Height:=...;
 Width:=...;
 Image:=TImage.Create(slef);
 Image.Parent:=self;
end;


 
Юрий Зотов ©   (2005-08-05 20:13) [3]

> Radgar ©   (05.08.05 19:52) [2]

Извините, но если Вы действительно хотите решить проблему, то, наверное, нужно приводить точный код, а не вводить людей в заблуждение. Тот, что Вы привели, даже не откомпилируется.


 
Radgar ©   (2005-08-05 20:17) [4]

2 Юрий Зотов

Забыл в TMyComponent = class (TCustomControl) и Image:=TImage.Create(self)
Ну еще не написал:
destructor TmeComponent.Destroy;
begin
 inherited Destroy;
end;


Ну вот вроде и всё.


 
Юрий Зотов ©   (2005-08-05 20:45) [5]

Конструктор надо перекрыть, а не закрыть (компилятор же не просто так предупреждения пишет, стоит обращать на них внимание).

При FImage:=TImage.Create(Self) деструктор можно убрать совсем. Полю Image в секции published делать нечего. Если конструктор переназначает размеры, есть смысл объявить их дефолтными.

type
 TMyComponent = class(TCustomControl)
 private
   FImage: TImage;
 public
   constructor Create(AOwner: TComponent); override; //!!!
published
   property Height default ...;
   property Width default ...;
end;

constructor TMyComponent.Create(AOwner: TComponent);
begin
 inherited;
 Height := ...;
 Width := ...;
 FImage := TImage.Create(Self);
 FImage.Parent := Self
end;



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

Форум: "Компоненты";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
15-1134847610
lookin
2005-12-17 22:26
2006.01.29
Очепятки в серьезных изданиях...


2-1136799965
St74
2006-01-09 12:46
2006.01.29
Хеширование по алг MD5?


15-1136817592
Гость_
2006-01-09 17:39
2006.01.29
Геометрия эллипсоида


2-1137396453
Silver__Dragon
2006-01-16 10:27
2006.01.29
Помощь при работе со съемными носителями.....


15-1136871008
begin...end
2006-01-10 08:30
2006.01.29
С Днём рождения! 10 января





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский