Додавання форм в dll

Як відобразити форму в додатку, яка міститься в DLL. Це досить простий процес.

створення DLL

Спочатку в цьому проекті потрібно створити DLL. яка буде містити форму. Щоб зробити це, слідуйте за цими кроками:

  1. Почніть новий проект, використовуючи File -> New DLL. у Вас буде шаблон DLL. в якому Ви повинні створити форму, для цього виконайте File -> New Form
  2. Потім потрібно додати форму в проект. Але спочатку збережемо форму під будь-яким ім'ям (наприклад DllForm) і додамо її в проект, використовуючи File -> Add To Project. . в діалоговому вікні виберіть збережену форму (DllForm.pas)

Написання коду в DLL

У цьому прикладі будуть два методу (одна процедура і одна функція) для відображення форми. Для відображення будемо використовувати методи Show і ShowModal.

Перша процедура, яка тільки покаже форму:

Все, що ми робимо в цій процедурі - просто створюємо форму, передаючи nil як параметр, так як ми не знаємо, хто власник форми. Потім відображаємо форму, використовуючи стандартний метод Show. Директива stdcall використовується, щоб заявити, які параметри будуть передаватися процедурою.

Показ модальної форми злегка відрізняється, так як ми повинні повернути модальний результат. Код, щоб зробити це:

Єдина відмінність між цим кодом і попереднім те, що ми використовуємо функцію замість процедури, щоб ми могли повернути модальний результат форми і викликаємо метод ShowModal замість Show.

Одна річ, яка присутня в еті' прикладах - ми створюємо форму, але ніде не знищуємо її, витрачаючи при цьому ресурси. Найлегший спосіб знищити форму полягає в тому, щоб зробити це в подію OnClose і встановлюючи її TCloseAction в caFree (тобто, пам'ять, пов'язана з формою звільняється, коли форма буде закрита). Зробіть це, вставивши наступний код в подія OnClose форми:

Нарешті, ми повинні експортувати функції в DLL. щоб вони могли бути викликані нашим додатком. Це можна зробити, додавши наступний код в файл DPR:

Все, закінчили писати DLL і продовжимо писати додаток, яке буде викликати цю DLL.

створення програми

Для створення програми потрібно виконати наступні кроки:

  1. Почніть новий проект, використовуючи File -> New Application. потім додайте дві кнопки на головну форму: одну для показу звичайної форми в DLL. а іншу, щоб показати її модально.
  2. Змініть написи на кнопках, щоб вони відображали суть, що вони будуть робити і змініть розміри в разі потреби.

Тепер ми маємо просту програму, що не робить нічого. Нам потрібно додати код для кнопок, щоб вони виконували необхідні функції.

Написання коду для Додатки

Знову використовуємо stdcall. оскільки так було оголошено процедура в DLL.

Потім ми повинні викликати ці процедури (функції), це робиться в події OnClick кнопок, які ми створили раніше:

Все, що ми тут робимо - викликаємо процедури в DLL в залежності від того, яка кнопка натиснута.

висновок

Це проста демонстрація, як можна використовувати форми в DLL. Це корисно, коли Ви хочете використовувати одні форми між різних додатків. Також, коли DLL використовується динамічно (тобто пов'язується під час виконання), це потужний шлях для додавання нових особливостей в додаток.

Схожі статті