ПредишенСледващото

C ++ Builder: създавате програмно и изтриване на форми

Както е известно, добавете към проекта за визуална среда, като C ++ Builder, нов прозорец за кандидатстване (форма) - няма проблем. Просто го включи в проекта чрез File менюто, Нова, формата и контролира дисплея / скриване на формата чрез своя Видим собственост или чрез стандартни методи Покажете () и Hide (TControl клас).

Когато динамични форми при прилагането става много, може да е препоръчително да не се да добавите всеки към проекта и да се създаде софтуер, както се изисква, за TForm - редовен клас, и следователно има конструктор:

Когато не е необходимо формата, можете да го премахнете по обичайния начин:

Какво става, ако формата е да е уникален и не се изисква да се предотврати създаването на втора на същото? Помогнете на следващата инструкция.

В основната форма клас в световен мащаб декларира указател към TForm:

В заглавната част на основната форма клас файл, от която искате да създадете нова форма, ние заявяваме, функцията прототип (публично):

Ние се опише самата функция в тялото на модула:

Писане на манипулатор събитие за OnClose създадена форма:

От където и да се създаде форма, създаване на процесора и витрини:

По този начин, на дубликат не е създаден, но след затварянето на динамичната форма можете да създадете копие от него отново.

Внимателен потребител може лесно да забележите, че в случай на множество динамични създаване / изтриване форми на паметта, заети от прилагането може да се увеличи, когато създавате, но не намалява при затварянето на формата, независимо дали това е нормално? Може би, за ISDA - да, защото Task Manager показва само използването на виртуална памет процес. мениджър памет счита искането за незабавно връщане на повече от една малка част от паметта - това може да доведе само до намаляване на производителността. Съответното място на паметта в "купчина" (купчина) само маркирани като свободни, и от време на време ще се използват повторно от едно и също приложение.

Подкрепете проекта - споделете линка, благодаря!