![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
VCL контролы на KOL форме [D5, Win95/98]
-SeM- © (2004-03-18 10:22:00)Вопрос в следующем.
Есть KOL приложение, динамически подгружающее и регистрирующее пакеты DELPHI (BPL). Есть доступ к классам этих пакетов. Как создать екземпляр оконного класса на главной форме приложения? Например
but:=TButton.Create( Form1.Form)
понятное дело дает ошибку компиляции. Что указывать в AOwner (TComponent)?
-SeM- (2004-03-25 16:23:00) [1]Вдогонку. Написал и подумалось :) Вечером проверю, авось получится
-SeM- (2004-03-25 16:14:00) [2]
> vclctl := Tvclctl.CreateParented(Form.Handle);
Что-то я не доганяю, CreateParented это от TWinControl, который является наследником от TControl. Т.е. вы предлагаете к KOL добавить controls.pas.
Надо об этом подумать :).
Наверное я криво высказался: есть доступ к классам (TClass) в пакетах.
Т.е. к TButton доберусь только через ClassByName('TButton') который есть TClass = class TObject (system.pas - а это уже что-то). Через него же имею доступ к RTTI. Т.е. создать (ту же кнопку), изменить Caption, размеры ... и даже подключить OnClick, и даже програмно"кликнуть" - не проблема. Проблема в том что ее (кнопки) нет на форме!
SPeller (2004-03-24 14:36:00) [3]
> В KOL же but:=NewButton(Form1.Form, 'Кнопка') созданая кнопка
> на форме будет видна.
Не всегда. Иногда ещё надо but.Show делать.
SPeller (2004-03-24 14:35:00) [4]vclctl := Tvclctl.CreateParented(Form.Handle);
После этого vcl-контрол создаст себя дитём на родителе-окне KOL формы. И не надо никаких присвоений парента.
-SeM- (2004-03-24 13:44:00) [5]Например в VCL
but:=TButton.Create(Form1);
but.Parent:=Form1;
без второй строчки кнопку на форме никогда не увидишь.
В KOL жеbut:=NewButton(Form1.Form, 'Кнопка')созданая кнопка на форме будет видна.
Но вопрос стоит о создании класса VCL на KOL форме. Соответственно без указания Parent полюбоваться внешним видом вновь созданной кнопки не получится.
А все остальное через RTTI.
mdw (2004-03-24 11:20:00) [6]> для того чтобы отобразился на форме необходимо установить Parent
C чего ты так решил? Все отобразится. Вот только насчет обработки сообщений, сомневаюсь. Боюсь, криво будет работать.
-SeM- (2004-03-24 09:58:00) [7]Неужели никто не знает?
-SeM- (2004-03-18 16:14:00) [8]Хорошо. Но сразу же следующий вопрос: для того чтобы отобразился на форме необходимо установить Parent. Как тогда здесь?
SPeller (2004-03-18 11:49:00) [9]Если только CreateParented и передавать хендл окна формы.