Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание компонент [D3, D5, D6, Win95/98, NT4]


vbazik ©   (2002-02-26 00:56:00) 

Подскажите как в виде компонента создать объект из Tscrollbox на котором содержится 2 Timage. У меня уже клин.. Вот часть кода. Если можно поправьте

uses extCtrls,Classes,graphics,forms,controls;

type
Tmy_class = class(tGraphicControl)
private
{}
public
sc:tscrollbox;
im1,im2:timage;
constructor Create(aowner:tcomponent); override ;
end;
procedure register;
implementation

constructor tmy_class.create(aowner:tcomponent);
begin
inherited create(aowner);
sc:=tscrollbox.Create(self);
im2:=timage.Create(self);
..
end;

procedure register;
begin
registercomponents("my",[Tmy_class]);
end;
end.

Бяда заключается в том что после размещения на форме и использовании к примеру
My_class1.im2.loadfromfile(‘1.bmp’);
картинка на форме не появляется. Подскажите - в чем я не прав.
Спасибо


vbazik   (2002-03-01 00:17:00) [1]

Всем спасибо! И МВо в особенности! Все О.К. ;))))))


CyberStorm   (2002-02-26 12:01:00) [2]

To MBo:
глючу я после ночи за компом... :-)конечно же, ему нужно чтобы у TImage был родитель для отображения на его канве... пардон...


Sasha9   (2002-02-26 11:31:00) [3]

а не лучше ли сделать твой класс потомком TScrollBox а не TGraphicControl?


MBo   (2002-02-26 09:27:00) [4]

>>im2.parent:=sc; указывать отдельно не обязательно
как же так? Owner и Parent - две большие разницы.
Qwner вызовет Free для своих вассалов, но канву-то он не предоставит, и пока не указан Parent (присвоением или InsertControl), im2 будет невидим


CyberStorm   (2002-02-26 08:46:00) [5]

MBo верно говорит, добавлю только одно:
При создании компонента в параметре конструктора Create передается указатель на его владельца т.е. так
...
im2:=timage.Create(sc);
im2.parent:=sc; указывать отдельно не обязательно


MBo   (2002-02-26 07:55:00) [6]

самое важное - чтобы объект ОТОБРАЖАЛСЯ, у него должен быть Parent
sc:=tscrollbox.Create(self);
sc.parent:=Self;
...
im2:=timage.Create(self);
im2.parent:=sc;//вероятно

А так как Parent - TWinControl, то и TMYCLASS должен быть его потомком, а не от TGRaphicControl
Скорее всего, надо его наследовать от TCustomControl


Наверх

Титульная страница Поиск, карта сайта Написать письмо