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