Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизСвойство-компонент Найти похожие ветки
← →
Alex134 (2003-07-25 01:21) [0]Как можно создать компонент, одно из свойств которого также будет компонентом?
← →
default (2003-07-25 01:28) [1]так же как ты создаёшь компонент с обычными полями
типа private FTimer: TTimer;
← →
Alex134 (2003-07-25 01:32) [2]
> так же как ты создаёшь компонент с обычными полями
> типа private FTimer: TTimer;
Я не верю )
← →
Marser (2003-07-25 01:34) [3]Дать ему тип TComponent, если для визуального компонента, то TControl или TWinControl
← →
default (2003-07-25 01:36) [4]что странного?
посмотри исходники компонентов...
объявление типа FTimer: TTimer означает лишь выделение 4 байт
при создании объекта
естественно в нужном месте должно быть написано FTimer := TTimer.Create
← →
default (2003-07-25 01:42) [5]http://www.delphi.h5.ru/teachdelphi/CHAPTE~1/index.HTM#1
← →
Юрий Зотов (2003-07-25 02:19) [6]> Alex134 © (25.07.03 01:21)
> Как можно создать компонент, одно из свойств которого также
> будет компонентом?
Для начала уточняем - внутренним или внешним?
← →
Alex134 (2003-07-25 16:20) [7]Владелец и компонент-свойство являются визуальными, компонент-свойство принадлежит владельцу
← →
Alex134 (2003-07-25 16:24) [8]P.S... и компонент-свойство должен быть доступен на этапе разработки в Object Inspector
← →
Юрий Зотов (2003-07-25 17:03) [9]Возьмите за основу вот такую схему:
type
TExternalComp = class(...) // ветка TWinControl
private
FInternalComp: ...; // ветка Control
procedure SetInternalComp(const Value: ...);
procedure ReadInternalComp(Reader: TReader);
procedure WriteInternalComp(Writer: TWriter);
protected
procedure DefineProperties(Filer: TFiler); override;
public
constructor Create(AOwner: TComponent); override;
published
property InternalComp: ...
read FInternalComp write SetInternalComp stored False;
end;
constructor TExternalComp.Create(AOwner: TComponent);
begin
inherited;
FInternalComp := T...Create(Self);
with FInternalComp do
begin
Parent := Self;
SetBounds(...);
... // Прочие настройки
end
end;
procedure TExternalComp.SetInternalComp(const Value: ...);
begin
FInternalComp.Assign(Value)
end;
procedure TExternalComp.DefineProperties(Filer: TFiler);
begin
inherited;
Filer.DefineProperty("InternalComp",
ReadInternalComp, WriteInternalComp, True)
end;
procedure TExternalComp.ReadInternalComp(Reader: TReader);
begin
FInternalComp := Reader.ReadComponent(nil)
end;
procedure TExternalComp.WriteInternalComp(Writer: TWriter);
begin
Writer.WriteComponent(FInternalComp)
end;
← →
Alex134 (2003-07-25 21:08) [10]
> default © (25.07.03 01:42)
> http://www.delphi.h5.ru/teachdelphi/CHAPTE~1/index.HTM#1
tnks, хорошая статья
> Юрий Зотов
Спасибо, это именно то, что мне и требовалось
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c