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

Вниз

Пишу компонент. Как послать месадж форме на которой он будет лежа   Найти похожие ветки 

 
qp   (2006-10-27 13:20) [0]

День добрый!
Пишу компонент. Подскажите как я могу послать месадж форме на которой он будет лежать. Как получить хендл формы?


 
unknown ©   (2006-10-27 13:26) [1]

GetParentForm(MyControl)


 
qp   (2006-10-27 13:37) [2]

Не допонял
MyControl - это что будет
в коде своей компоненты я не знаю какие котролы будут еще лежать на форме...


 
unknown ©   (2006-10-27 13:39) [3]


> qp   (27.10.06 13:37) [2]
>
> Не допонял
> MyControl - это что будет

Это твой компонент.


 
Джо ©   (2006-10-27 13:41) [4]

> MyControl - это что будет

Это будет Self.


 
qp   (2006-10-27 13:42) [5]

ааа
ясн
ща попробую
пасиба


 
Сергей М. ©   (2006-10-27 13:43) [6]


> форме на которой он будет лежать.


Компонент не обязан где-то там "лежать".


 
qp   (2006-10-27 13:52) [7]

т.е получается еще нужно привести тип? к TControl
GetParentForm(TControl(Self))
верно?


 
qp   (2006-10-27 13:54) [8]

ну да не обязан.
в даном случае мне так нужно
клас компонента наследник от TComponent


 
Сергей М. ©   (2006-10-27 14:13) [9]


> клас компонента наследник от TComponent
>


Компонент и не может быть наследником (прямым или непрямым) иначе чем класса TComponent


 
qp   (2006-10-27 14:14) [10]

мне из компонента необходимо временно запретить перерисовку формы
вот для этого и нужен дескриптор формы


 
qp   (2006-10-27 14:24) [11]

frm := GetParentForm(TControl(Self)); - ворачивает нил


 
qp   (2006-10-27 14:38) [12]

TComponent же выше в иерархии TControl
приведение неравельное
как быть?


 
Mirage   (2006-10-27 14:51) [13]

>[12] qp 27-Oct-2006, 14:38
у TComponent нет parent"а. у него только Owner. потому что TComponent -- не визуальный. "компрене ву?" (ц)


 
unknown ©   (2006-10-27 14:52) [14]


> qp   (27.10.06 14:38) [12]
> как быть?


Можно так :
procedure TForm1.Button1Click(Sender: TObject);
var
 Comp:TComponent;
begin
 Comp:=MyComponent.Owner;
 while (Comp<>nil) and not (Comp is TForm) do
   Comp:=Comp.Owner;
 if Comp is TForm then
   TForm(Comp).Caption:="afgbasg";
end;


 
qp   (2006-10-27 15:06) [15]

спасибо



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

Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
2-1161891213
Andrey.Ru
2006-10-26 23:33
2006.11.12
Как запустить цикл и не дожидаться его завершения?


15-1161790654
Kerk
2006-10-25 19:37
2006.11.12
Пиво. Ice.


2-1161685492
G2
2006-10-24 14:24
2006.11.12
Как хранить множество в Paradox e?


15-1161684138
Slava812
2006-10-24 14:02
2006.11.12
Загадка (срочно нужен ответ)


2-1161328040
Cara
2006-10-20 11:07
2006.11.12
Определить статутус программы.





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