C ++ Builder: създавате програмно и изтриване на форми
Както е известно, добавете към проекта за визуална среда, като C ++ Builder, нов прозорец за кандидатстване (форма) - няма проблем. Просто го включи в проекта чрез File менюто, Нова, формата и контролира дисплея / скриване на формата чрез своя Видим собственост или чрез стандартни методи Покажете () и Hide (TControl клас).
Когато динамични форми при прилагането става много, може да е препоръчително да не се да добавите всеки към проекта и да се създаде софтуер, както се изисква, за TForm - редовен клас, и следователно има конструктор:
Когато не е необходимо формата, можете да го премахнете по обичайния начин:
Какво става, ако формата е да е уникален и не се изисква да се предотврати създаването на втора на същото? Помогнете на следващата инструкция.
В основната форма клас в световен мащаб декларира указател към TForm:
В заглавната част на основната форма клас файл, от която искате да създадете нова форма, ние заявяваме, функцията прототип (публично):
Ние се опише самата функция в тялото на модула:
Писане на манипулатор събитие за OnClose създадена форма:
От където и да се създаде форма, създаване на процесора и витрини:
По този начин, на дубликат не е създаден, но след затварянето на динамичната форма можете да създадете копие от него отново.
Внимателен потребител може лесно да забележите, че в случай на множество динамични създаване / изтриване форми на паметта, заети от прилагането може да се увеличи, когато създавате, но не намалява при затварянето на формата, независимо дали това е нормално? Може би, за ISDA - да, защото Task Manager показва само използването на виртуална памет процес. мениджър памет счита искането за незабавно връщане на повече от една малка част от паметта - това може да доведе само до намаляване на производителността. Съответното място на паметта в "купчина" (купчина) само маркирани като свободни, и от време на време ще се използват повторно от едно и също приложение.