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

Вниз

Изменение св-ва Parent   Найти похожие ветки 

 
anbezr   (2003-04-04 10:35) [0]

Привет!
мой компонент может быть дочерним только к компоненту определенного типа. Например, сомпонент TMyClass может иметь родителем исключительно TCustomForm. В рантайме мне ничего не стоит всем объектам TMyClass присвоить родителем объект TCustomForm. А как это сделать в DesignTime, ведь свойство Parent компонента еще не определено.


 
Skier ©   (2003-04-04 10:37) [1]

TControl.SetParent(...) ?


 
anbezr   (2003-04-04 10:45) [2]

эти строки эквивалентны:
SetParent(Form1);
Parent := Form1;
пробелема не в этом. проблема в том, как заставить дельфю поместить вновь создаваемый экземпляр моего объекта прописать в дочерние именно формы.


 
Skier ©   (2003-04-04 10:47) [3]

>anbezr
бррррр...
Какие дочерние именно формы ???
Скажи по-русски что нужно.


 
anbezr   (2003-04-04 11:07) [4]

:} сейчас попытаюсь.
я написал компонент, который требует выполнения двух условий:
1) компонент не может иметь дочерних компонентов того же типа.
2) компонент, в свойстве Parent, должен иметь только MainForm.
в рантайме у меня не возникает проблем с тем, чтобы обеспечить выполниния обоих условий.
но в дезайнтайме, когда пользователь может мышкой поместить один мой компонент на другой, возникают проблемы - целая уйма.
Так вот, могу ли я заставить дельфю помещать этот мой компонент всегда на форму, а ни на какой другой объект.


 
Skier ©   (2003-04-04 11:16) [5]

>anbezr
Ну дык...перекрой ( override :) ) метод SetParent у своего копонента. Что-то типа этого :
TYourComponent.SetParent(AParent: TWinControl);
begin
if csDesigning in ComponentState then begin
if not (AParent is TMainForm) then begin
//генери exception...;
end; //if
end; //if
inherited SetParent(AParent);
end;


 
anbezr   (2003-04-04 11:25) [6]

Skier, Спасибо!
if AParent is TMyComponent then AParent := AParent.Parent;
inherited SetParent(AParent);
работает прекрасно!



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
3-54420
TohaNik
2003-04-01 12:04
2003.04.17
Как обойтись одним запросом


1-54584
Beglec
2003-04-07 08:54
2003.04.17
Народ объясните пожалуйста, Что есть такое


3-54422
MaxV
2003-04-01 13:59
2003.04.17
Как открыть паролированную таблицу Paradox?


1-54644
SergeN
2003-04-08 12:45
2003.04.17
Позиция ProgressBar


14-54821
Opuhshii
2003-03-31 20:01
2003.04.17
Очень нехоршие люди!