Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.02.2008, 21:30
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию Люди Помогите!

Я создал проект грубо говоря 2 формы с парой элементов. Все вроде хорошо работает но есть одна проблема когда закрываешь это приложение он почему-то остается в памяти и весит в диспетчере задач и отъедает 9 метров памяти (это конечно не критично ) но все-таки не приятно. Как сделать так чтобы при закрытии приложения оно убиралось и памяти? (Мой препод по Делфи тока пожал плечами )
Ответить с цитированием
  #2  
Старый 04.02.2008, 22:22
Аватар для White_Horse
White_Horse White_Horse вне форума
Новичок
 
Регистрация: 28.10.2007
Сообщения: 61
Репутация: 15
По умолчанию

А ты освобождаешь сам память у себя в программе методом Free ?
Ответить с цитированием
  #3  
Старый 05.02.2008, 07:32
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от White_Horse
А ты освобождаешь сам память у себя в программе методом Free ?

White_Horse а вот с этого момента можно по подробней я Делфи занимаюсь дай бог всего 2 дня если не трудно обясни как сделать это.
Ответить с цитированием
  #4  
Старый 05.02.2008, 08:47
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Надо в методе главной формы прописать каждый элемент вот так:

Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Элемент1_формы2.Free;
  Элемент2_формы2.Free;
  ...
  ЭлементN_формы2.Free;
  Form2.Free;
  Элемент1_главнойформы.Free;
  Элемент2_главнойформы2.Free;
  ...
  ЭлементN_главнойформы2.Free;
  Form1.Free;
end;

Хотя не думаю, что это выгрузит прогу из памяти...
Кстати, каким образом твоя прога вырубается?
Ответить с цитированием
  #5  
Старый 05.02.2008, 10:27
Аватар для 4erep_88
4erep_88 4erep_88 вне форума
Новичок
 
Регистрация: 18.07.2007
Сообщения: 51
Репутация: 15
По умолчанию

Может, ты не закрываешь главную форму, а просто оставляешь ее невидимой? Например, ты закрываешь Form2, а Form1 у тебя остается невидимой (visible=false). Тогда тебе может помочь это...

Код:
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
end;
Ответить с цитированием
  #6  
Старый 05.02.2008, 20:51
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

[quote=4erep_88]Может, ты не закрываешь главную форму, а просто оставляешь ее невидимой? Например, ты закрываешь Form2, а Form1 у тебя остается невидимой (visible=false). Тогда тебе может помочь это...


делаем так
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
Form2.show;
end;

и проходит вылет из программы
Ответить с цитированием
  #7  
Старый 05.02.2008, 20:57
НичеНепониаю НичеНепониаю вне форума
Новичок
 
Регистрация: 25.01.2008
Сообщения: 52
Репутация: 10
По умолчанию

[quote=SSA]
Цитата:
Сообщение от 4erep_88
Может, ты не закрываешь главную форму, а просто оставляешь ее невидимой? Например, ты закрываешь Form2, а Form1 у тебя остается невидимой (visible=false). Тогда тебе может помочь это...


делаем так
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Close;
Form2.show;
end;

и проходит вылет из программы
ТакаЯ ХнЯ ПатОммучТа Form1 являецо основным и при Закрытии главного Меню у тя прост ЗакрываЕцо сама прогРамм0.

Для закрытия всей программы: Присвой Значение Form1.Close;
Для закрытия второй формы присвой Form2.Close;

Для просто-го закрыытийа используй Close;

Тож срабатываит
__________________
НичеНепонимаю Савсем! Кто объяснит мне тот получит конфетку!!!
Ответить с цитированием
  #8  
Старый 06.02.2008, 06:44
Аватар для 4erep_88
4erep_88 4erep_88 вне форума
Новичок
 
Регистрация: 18.07.2007
Сообщения: 51
Репутация: 15
По умолчанию

НичеНепониаю, SSA, вы очень интересно цитируете .

SSA, может, ты приведешь код всех модулей, скажешь наконец, каким образом ты закрываешь свою программу и вообще что ты хочешь видеть в своей проге? Я не понял ничего, кроме того, что ты сначала не можешь закрыть приложение, а потом тебе не нравится, что оно закрывается .
Ответить с цитированием
  #9  
Старый 06.02.2008, 11:25
Revolution2010 Revolution2010 вне форума
Прохожий
 
Регистрация: 25.09.2007
Сообщения: 27
Репутация: 10
По умолчанию

Чтобы нафиг полностью закрыть свою прогу поставь Объект.Кнопку на форму и пропиши дальше Application.Terminated...
И не придется прописывать все Form.Close для каждой формы...
Ответить с цитированием
  #10  
Старый 06.02.2008, 20:42
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Вобщем у меня ситуация токая на форме есть MainMenu как мне правильно организовать через него переход на другую форму?
Ответить с цитированием
  #11  
Старый 06.02.2008, 21:50
Аватар для Dimanus
Dimanus Dimanus вне форума
Прохожий
 
Регистрация: 20.11.2006
Адрес: Россия г.Братск
Сообщения: 33
Репутация: 10
По умолчанию

При нажатиии получиться процедура и там пишешь -
procedure TForm1.N1Click(Sender: TObject);
begin
Application.CreateForm(TForm2,Form2);
end;

Есть ещё методы : Form2.Show и т.д. остальное книги
Ответить с цитированием
  #12  
Старый 07.02.2008, 08:38
Аватар для 4erep_88
4erep_88 4erep_88 вне форума
Новичок
 
Регистрация: 18.07.2007
Сообщения: 51
Репутация: 15
По умолчанию

еще вариант - Form2.ShowModal - показать как модальную
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:58.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter