Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
ВнизМного ли занимают памяти дополнительные формы ? Найти похожие ветки
← →
dream (2003-10-13 10:14) [0]Вот вопрос делаю прогу и избегаю создания дополнительных форм , думаю что они будут есть память , правда ли это и стоит ли создавать множество форм , чтобы они все были в памяти ( то есть создавались при включении программы автоматически ) ?
← →
KSergey (2003-10-13 10:29) [1]Стоп, как понимать слова "избегаю создания дополнительных форм"? В смысле все упихать в одну? Или все же речь об автоматическом создании?
А вообще - любой созданный компонент занимает память - куда от этого уйти? ;)
А много или мало - это относительные понятия.
← →
dream (2003-10-13 10:35) [2]>KSergey
Ну например у меня прога с 3 формами
А я решил добавить туда ещё 7 форм как это отразиться на памяти программы , на счёт компонентов я ничего не говорю ! я хочу узнать только про формы
← →
BOA_KAA (2003-10-13 10:39) [3]Если так волнуешься за память, подключай их динамически (т.е. по мере надобности)
← →
KSergey (2003-10-13 10:42) [4]2 [2] dream (13.10.03 10:35)
А форма - это и есть компонент в понятиях дельфи ;)
А как отразится - известно как, это любой подтвердит: на каждом этапе программа начнет жрать больше ресурсов. И чем больше форм - тем больше и больше.
← →
Anatoly Podgoretsky (2003-10-13 10:45) [5]dream (13.10.03 10:35) [2]
Это проверяется просто, делаешь программу с 3, смотришь сколько она ест, затем делаешь с 7. Разница и есть тебе нужное значение.
Создавать при старте, это безответственно относиться к ресурсам системы, не резиновые.
← →
Dream (2003-10-13 11:01) [6]> BOA_KAA
Подскажите как создавать формы динамически , то есть я понял что их нужно удалить из списка автоматически создаваемых. Как их запускать ? И как их потом безболезнено отключать ? есть ли пример или где об этом можно почитать ?
← →
Карелин Артем (2003-10-13 11:05) [7]Form1:=TForm1.Create(Self); - создание
Form1.Show; - показ.
Form1.Free; - Безболезненно отключаем.
← →
toc (2003-10-13 11:11) [8]Если MDI приложение, то
Создаем так:
TfrmUsers.Create(Application);
Убиваем призакрытии так:
procedure TfrmUsers.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Если не MDI приложение, то например так:
var f:TMyForm;
begin
f := TMyForm.Create(Application);
// Показываем модальное окно
if f.ShowModal=mrYes then ... // если нажали ДА
else... ;
f.Free; // Освобождаем память
end;
← →
Anatoly Podgoretsky (2003-10-13 11:12) [9]Карелин Артем © (13.10.03 11:05) [7]
Кроме пункта третьего в данном примере.
← →
Dream (2003-10-13 11:13) [10]> Карелин Артем
Спасибо ! Теперь проблема решена !
← →
Dream (2003-10-13 11:14) [11]> Anatoly Podgoretsky
Почему кроме 3 пункта ?
← →
toc (2003-10-13 11:14) [12]
> Карелин Артем © (13.10.03 11:05) [7]
> Form1:=TForm1.Create(Self); - создание
> Form1.Show; - показ.
> Form1.Free; - Безболезненно отключаем.
Если Free сразу после Show, то пользователь будет видеть форму ровно 0,01 секунду
← →
Skier (2003-10-13 11:14) [13]>Карелин Артем © (13.10.03 11:05) [7]
Сколько времени Form1 будет на экране ? :)
← →
Dream (2003-10-13 11:18) [14]> Skier
> toc
Карелин Артем же образно говорил ! метод free можно вызывать когда захочешь ! а 1 и 2 метод сразу ! так работает
← →
Карелин Артем (2003-10-13 11:18) [15]Ну что вы с временем пристали? Может вам еще переменные обьявить, отступы поставить и ошибки ловить :)
← →
Плохиш_ (2003-10-13 11:20) [16]Предлагаю Карелин Артем © (13.10.03 11:05) [7] читать так: между 2м и 3м пунктом многоточие ;-)
PS. Во набросились 8-)
← →
pasha_676 (2003-10-13 11:28) [17]
> Ну что вы с временем пристали?
Просто на самом деле задача раскладывается на две
1) Создаваемая форма модальная.
2) Создаваемая форма не модальная.
Во втором случае free надо делать в самой форме.
← →
Anatoly Podgoretsky (2003-10-13 11:31) [18]Карелин Артем © (13.10.03 11:18) [15]
Ну если бы ты написал ShowModal то претензий бы не было, а так ошибка.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c