Форум: "KOL";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
ВнизВопрос по внедрению КОЛ-компонентов в VCL-проекты на Delphi Найти похожие ветки
← →
Сызганов Н.А. (2003-04-22 10:21) [0]Вопрос конечно хулиганский,но тем не менее...
Допустим,у меня есть VCL-проект на Д7,который ну ни в
какую не перевести на КОЛ (например,работа в DBExpress).
В тоже время есть компоненты на КОЛ, которые намного эффективнее
и привлекательнее аналогичных компонентов на VCl,и поэтому появляется
желание использовать их в своём VCL-проекте.
Возможен ли такой гибрид,или эти два антипода концептуально
никогда не смогут пересечься,как два берега одной реки.
С уважением, Сызганов Николай.
← →
SPeller (2003-04-22 14:40) [1]VCL и KOL вполне могут существовать вместе. Пример тому - сама МСК.
← →
Gandalf (2003-04-24 09:38) [2]Во первых всеже надо различать внедрение KOL в VCL и VCL в KOL. Тут дело обстоит так. Вещи разные, разграничить можно по тому чей Application (Applet). Насчет внедрения VCL в KOL все довольно ясно, в основном невизуальные (не все) и некоторые визуальные. Но даже при таком легировании, VCL тащит столько примеси, что размер "ухает на дно". В чем выигрыш? VCL+MCK= невозможно, они несовместимы и друг друга не переносят. VCL+KOL возможно помолясь и с большими натяжками, потому как не получиться приципить визуальные компоненты, да и не визуальные тоже не все запашут. Выигрыш в размере - неуглядеть!
← →
SPeller (2003-04-24 14:17) [3]
> VCL+MCK= невозможно
это как? МСК - это ведь смесь VCL и KOL. Не знаю только что во что добавляли, скорее всего KOL в VCL.
← →
Gandalf (2003-04-24 14:48) [4]
> > VCL+MCK= невозможно
>
> это как?
Попытка бросить MCK компоненты на форму без KOLProject...
> МСК - это ведь смесь VCL и KOL. Не знаю только что во что
> добавляли, скорее всего KOL в VCL.
Я понимаю MCK как набор утилит для генерации кода инициализации, что позваляет разрабатывать приложение "визуально", то что процесс разработки похож на аналогичный с VCL, родства не прибавляет, а только вносит путаницу в понимании концепции. Может не совсем верная аналогия, но точнее отражает суть (с нужной стороны).
← →
Centronix (2003-04-24 14:48) [5]
> это как? МСК - это ведь смесь VCL и KOL. Не знаю только
> что во что добавляли, скорее всего KOL в VCL.
MCK - это набор чистых VCL контролов, которые генерируют код для создания соответствующих KOL контролов. Сама MCK KOL не использует.
← →
BaRToV (2003-04-30 13:50) [6]2 Centronix
Сама MCK KOL не использует.
Еще как использует, начиная с версии 1.64(кажется, может и позже), чтобы отображать реально компонент.
И получается, что мы создаем реальный Run-Time компонент в MCK.
TKOLBAPDriveBox = class(TKOLComboBox)
...
protected
...
// Визуализация MCK
procedure CreateKOLControl(Recreating: boolean); override;
public
...
// Визуализация MCK
procedure SetParent(Value: TWinControl); override;
...
end;
(* ВИЗУАЛИЗАЦИЯ MCK *)
procedure TKOLBAPDriveBox.CreateKOLControl(Recreating: boolean);
begin
FKOLCtrl := PControl(NewBAPDriveBox(KOLParentCtrl, TRUE,
clHighlightText, clHighlight));
end;
procedure TKOLBAPDriveBox.SetParent(Value: TWinControl);
begin
inherited;
// Т. к. мы сами вырисовываем компонент, то необходимо вызвать RecreateWnd.
if Assigned(Value) then
( FKOLCtrl) [6] 2 Centronix
Сама MCK KOL не использует.
Еще как использует, начиная с версии 1.64(кажется, может и позже), чтобы отображать реально компонент.
И получается, что мы создаем реальный Run-Time компонент в MCK.
TKOLBAPDriveBox = class(TKOLComboBox)
...
protected
...
// Визуализация MCK
procedure CreateKOLControl(Recreating: boolean); override;
public
...
// Визуализация MCK
procedure SetParent(Value: TWinControl); override;
...
end;
(* ВИЗУАЛИЗАЦИЯ MCK *)
procedure TKOLBAPDriveBox.CreateKOLControl(Recreating: boolean);
begin
FKOLCtrl := PControl(NewBAPDriveBox(KOLParentCtrl, TRUE,
clHighlightText, clHighlight));
end;
procedure TKOLBAPDriveBox.SetParent(Value: TWinControl);
begin
inherited;
// Т. к. мы сами вырисовываем компонент, то необходимо вызвать RecreateWnd.
if Assigned(Value) then
RecreateWnd;
end;
...
if Assigned(FKOLCtrl) then // Визуализация MCK
PBAPDriveBox(FKOLCtrl)^.DriveName := FDriveName;
Что, не используется???... ;-)
← →
BaRToV (2003-04-30 14:00) [7]Да, чтоб было понятно что к чему - читаем статью "Создание визуальных компонентов в KOL."
http://delphikol.narod.ru/docs/WritingComp.htm
или качаем архив статьи с примером
http://delphikol.narod.ru/docs/WritingComp.zip
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c