Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

Много ли занимают памяти дополнительные формы ?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
14-74466
Zhouck
2003-10-03 14:16
2003.10.23
Fast Report


3-74014
Юлия
2003-10-03 21:55
2003.10.23
Поиск записей


1-74285
Efim
2003-10-12 17:52
2003.10.23
разрешение экрана


1-74110
Chicago
2003-10-13 06:37
2003.10.23
Окно неправильной формы


3-74004
alex25
2003-09-30 17:24
2003.10.23
Функция текущей даты