Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1092168310
Zif
2004-08-11 00:05
2004.09.05
Можно ли в ADOQuery соединить несколько таблиц?


3-1092042788
Leons
2004-08-09 13:13
2004.09.05
Не получается проапдейтить таблицу acess


14-1092849164
Андрюха-1
2004-08-18 21:12
2004.09.05
Сколько стоит открыть свою фирму...


8-1087383433
Sanek_metaller
2004-06-16 14:57
2004.09.05
Как отчистить TImage от BitMap a?


1-1093007891
iBitmap
2004-08-20 17:18
2004.09.05
cm_mouseleave при MouseDown