Відмінності kol-проекту від vcl-проекту

Робота з формами

I. ДОДАВАННЯ ФОРМИ.

1. File | New form.
2. Зберегти її В ТУ Ж директор. де лежать інші файли проекту.
3. Кинути на форму компонент TKOLForm. (Переконатися так само, що на головній формі вже лежить TKOLApplet. Якщо немає - покласти).
4. Власне, все. Якщо в TKOLProject властивість AutoBuild = True (за замовчуванням), то через BuildDelay мікросекунд форма перетвориться в KOL-сумісну. Якщо немає, треба зробити подвійне клацання по властивості Build компонента TKOLProject (на головній формі).

II. ВИДАЛЕННЯ ФОРМИ.

1. Project | Remove from prject. - як зазвичай.
2. У головній формі виділити TKOLProject. подвійне клацання по властивості Build.

III. ПЕРЕЙМЕНУВАННЯ ФОРМИ.

Не змінюйте ім'я форми, замість цього змініть властивість FormName компонента TKOLForm. лежачого на цій формі. (Головна форма теж повинна бути відкрита).

Для вирішення конфлікту між словом Self з VCL і словом @Self в KOL. які інтерпретуються по-різному, введено спеціальне слово Form. У VCL-проект (дзеркалі) Form - це властивість компонента TKOLForm. повертає Self. У KOL-проект - це поле об'єкта з ім'ям вихідної форми, і є покажчиком на об'єкт самої форми. Так що, для коректного поводження до властивостей форми з призначеного обробника в обох випадках правильно буде звучати:

(В той же час старий стиль Caption: = 'Hello!'; Видасть помилку в конвертувати KOL-проект при спробі компіляції).

Але пропоноване слово Form слід використовувати тільки для доступу до властивостей форми. Для доступу до дочірніх об'єктів форми воно не потрібно (і невірно). Треба, як зазвичай:

Button1.Caption: = 'OK';
Button1Click (Form);

Додавання посилання на модуль

Якщо необхідно використовувати зовнішній модуль, що не міститься у директиві uses. додайте його як показано в наведеному уривку:

uses Windows, Messages, ShellAPI, KOL. mirror, Classes,

Controls, mckCtrls. <-- список имен дополнительных модулей --> ;

mirror, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, mirror;

Використання спадкоємців TComponent з VCL

Починаючи з версії MCK v0.71. можливо використовувати невізуальні компоненти, засновані на VCL. в візуальних проектах KOL + MCK. Для них буде згенеровано код, їх конструює, і руйнує, присвоєні події і ті властивості, які відрізняються від привласнюються в конструкторі.

Тим не менше, використання компонентів VCL в проектах, заснованих на KOL. не рекомендується . так як в будь-якому випадку вони потягнуть за собою дуже великий обсяг невикористаного коду.

У той же час, використання візуальних компонентів VCL в проекту MCK неможливо взагалі. Компоненти TKOLProject і TKOLFormблокіруются негайно в разі виявлення таких об'єктів на формі, що запобігає псуванню VCL-проектів в разі помилкового кидання компонентів MCK на форму звичайного VCL-проекту.

Якщо VCL компонент використовується в проекті MCK, врахуйте, що:

- автоматична генерація коду не відбувається. коли властивості такого компонента змінюються або йому призначаються обробники подій. Слід (наприклад) подвійним клацанням по компоненту TKOLProject форсувати генерацію коду після внесення будь-яких змін в налаштування чужорідного компонента.

- коли VCL компонент "кинутий" на форму, Delphiдобавляет посилання на його модуль в кластер uses. але вона виявляється зазвичай поміщена між дужками. . так що проект не може бути нормально откомпилирован. Щоб виправити це, перенесіть посилання на модуль за дужки:

Автоматично генеруються файли

1. На додаток до .dpr. генеруються файли:

- _0.inc - містить альтернативний код ініціалізації програми, що заміщає собою те, що знаходиться в dpr-файлі між begin і end. Структура приблизно наступна:

Applet: = NewApplet (.); // якщо використовується TKOLApplet
[Applet.Visible: = False; ] // опціонально
[Applet.OnMessage: =. ; ] // опціонально

- _1.inc - створюється порожнім, якщо не існує. Ви можете змінювати його, поміщаючи в нього код, який спрацює негайно після (опціональною) ініціалізації змінної Applet. Наприклад, тут можна написати умовний оператор, який запобіжить подальший запуск програми в деяких випадках.

- _2.inc - генерується автоматично, містить код ініціалізації автоматично створюваних форм.
Ніколи не змінюйте його.

- _3.inc і _4.inc - так само, як і _1.inc. генерується порожнім, якщо не існує. Розміщуйте в ньому свій код (будь-який).

2. Для кожного модуля форми автоматично генерується файл _1.inc.
Ніколи не змінюйте його.

3. Файл uses.inc так само генерується автоматично. Він містить тільки слово 'uses'. додається до фінального код через директиву.
Ніколи не змінюйте його.