Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-37886
pohil
2003-12-19 12:52
2004.01.13
Я делаю администрирование сети, как мне показать что творится...


1-37641
Pa5ha
2003-12-26 23:44
2004.01.13
Кнопарь рядом с границей.


3-37505
Виталя
2003-12-17 10:01
2004.01.13
Как засунуть exe-файл в БД.


7-37955
demonyator
2003-10-30 00:41
2004.01.13
Как отловить событие создания или прекращения процесса.


14-37935
Bokus
2003-12-20 14:55
2004.01.13
Сети Петри (проверка на дастижимость и живость)





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