Главная страница
    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.009 c
3-54509
npAKTuk
2003-03-30 20:50
2003.04.17
Datasources


14-54837
Сергей Чурсин
2003-04-01 01:42
2003.04.17
Религия - как много в этом слове...


3-54472
Sergei
2003-03-29 12:59
2003.04.17
SQL Создание запроса Подскажите Пожалуйста


1-54642
sidorov_al
2003-04-08 11:17
2003.04.17
Как положить ProgressBar на StatusBar


14-54872
dir_er
2003-04-02 03:26
2003.04.17
rulezzz





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