Створення форми на основі рядка - delphi sources faq

В даному документі розповідається про те, як в Delрhi можна створити екземпляр форми на основі рядка, що містить ім'я типу. Код прикладу додається.

На кого розрахований даний документ?

На будь-якого програміста, який має початкові знання для роботи з Delphi. Має відношення до будь-якої версії Delphi.

Створення форми на основі рядка

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

AClass - клас TPersistent. Іншими словами, клас, який ви хочете реєструвати, в якійсь точці повинен успадковуватися від TPersistent. Оскільки всі елементи управління Delphi, включаючи форми, дотримуються цієї вимоги, то проблем бути не повинно. Але такий спосіб не пройде, якщо реєстровані класи успадковуються безпосередньо від TObject.

Після реєстрації класу, ви можете знайти покажчик на тип, передаючи рядок у FindClass. Функція поверне посилання на клас, яку можна використовувати для створення форми. Невеликий пояснює приклад:

Даний код створить тип TForm2, який ми зареєстрували за допомогою RegisterClass.

Створіть новий проект, потім додайте 4 форми так, щоб в цілому вийшло 5. У реальному проекті ви можете заповнити їх необхідними елементами управління, для цього ж прикладу це не важливо.

У першій формі розмістіть поле редагування і кнопку. Видаліть всі форми, крім головної, зі списку AutoCreate. Нарешті, скопіюйте наведений нижче код в unit1, він дозволить вам створювати форму на ім'я типу класу, введеному в поле редагування.

Схожі статті