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

Вниз

Изменение св-ва 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-54745
race1
2003-04-05 10:45
2003.04.17
treeview


1-54571
it
2003-04-05 21:23
2003.04.17
Куда можно запихнуть болле 2000 строк?


3-54529
Yuraz
2003-04-01 09:24
2003.04.17
Просмотр данных о функциях в Oracle.


3-54488
Совенок
2003-03-27 06:22
2003.04.17
Поля Formatted Memo


14-54838
hatchy
2003-03-31 10:25
2003.04.17
Браузер глючит....





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