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

Вниз

Закрытие программы   Найти похожие ветки 

 
Sysanin   (2005-11-18 21:06) [0]

Может и тупой вопрос но... Как можно закрыть программу? Какой процедурой?


 
Eraser ©   (2005-11-18 21:08) [1]

Application.Terminate
или Halt


 
close   (2005-11-18 21:18) [2]

procedure TForm1.Button1Click(Sender: TObject);
begin
 close;
end;


 
Eraser ©   (2005-11-18 21:24) [3]


> close   (18.11.05 21:18) [2]

А если Form1 - не главная форма программы? )


 
Sysanin   (2005-11-18 21:55) [4]

Close не подходит, я уже пробовал... А вот Application.Terminate
мона попробовать


 
SergP ©   (2005-11-19 13:49) [5]


> Sysanin   (18.11.05 21:55) [4]
> Close не подходит, я уже пробовал... А вот Application.Terminate
> мона попробовать


Close только для главной формы


 
Asail   (2005-11-19 17:36) [6]

А если открыто, помимо главной, еще несколько форм - тогда как?
А в каждой форме открытые DataSets и т.д. и т.п....
Нехорошо, наверное и frmMain.Close и Application.Terminate


 
Сайбель Алексей ©   (2005-11-19 18:22) [7]


>А в каждой форме открытые DataSets и т.д. и т.п....
> Нехорошо, наверное и frmMain.Close и
> Application.Terminate

Ты вообще программу собираешься закрывать?

Ничего не вижу плохого в frmMain.Close,
предварительно закрывай все свои ДатаСэты.


 
tigrenok ©   (2005-11-20 01:41) [8]

Закравай все от меньшего к большему! CLOSE!


 
Eraser ©   (2005-11-20 02:17) [9]

Приемущество halt (не знаю как насчёт terminate) в том, что программа закрывается практически моментально, не уничтожая предварительно все свои объекты. Например при разрушении формы последовательно уничтожаются все содержащиеся на ней объекты, а halt просто даёт команду закрыть процесс. Естественно перед вызовом halt необходимо сохранить нужные данные.
Кстати прослеживается аналогия с играми, одно время выход из игрушки особенно на слабой машине занимал не мало времени, т.к. предварительно "вручную" освобождалась память, последнее же  время (года 3) стали применять именно непосредственное закрытие дескриптора процесса и игрушки стали вышружаться гораздо быстрее.


 
Германн ©   (2005-11-20 02:38) [10]


> Кстати прослеживается аналогия с играми, одно время выход
> из игрушки особенно на слабой машине занимал не мало времени,
>  т.к. предварительно "вручную" освобождалась память, последнее
> же  время (года 3) стали применять именно непосредственное
> закрытие дескриптора процесса и игрушки стали вышружаться
> гораздо быстрее.


Что-то мне сомнительна эта аналогия. "Ручное" освобождение памяти, имхо, не на много медленнее автоматитческого. А вот сохранение, скажем так, "желательной и полезной" информации на диск, действительно может занимать время. А halt эту информацию теряет. Желаешь ли ты, чтобы твоя текущая позиция в игрушке сохранилась для продолжения игры?


 
Eraser ©   (2005-11-20 23:30) [11]


> Германн ©   (20.11.05 02:38) [10]


> А halt эту информацию теряет. Желаешь ли ты, чтобы твоя
> текущая позиция в игрушке сохранилась для продолжения игры?
>

Так перед вызовом halt надо сохранять данные, а память намного быстрее освобождается сразу для всего приложения, чем при освобождении по частям.


 
GuAV ©   (2005-11-21 00:56) [12]

Eraser ©   (20.11.05 2:17) [9]
Halt приведёт к не-вызову деструкторов форм, однако это не во всех случаях ощутимо ускорит медленную выгрузку, т.к. финализация модулей и финализация глобальных переменных будут всё же выполнена.

Для более быстрого выхода следует использовать ExitThrerad или ExitProcess.

Для ускорения финализации части глобальных переменных или полей классов их "зануляют". var S: string; I: IMyIntf; Pointer(S) := nil; Pointer(I) := nil;

Application.Terminate - выход из цикла диспечеризации сообщений application.Run - т.е. "классический" способ выхода, когда выполнение доходит до последней строки.



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
1-1131716418
pasergey
2005-11-11 16:40
2005.12.11
Hужен кряк или кейген к EPocalipse VssConneXion 3.1 build 47


2-1132942763
дурачок
2005-11-25 21:19
2005.12.11
MP3


2-1132598088
Tapok
2005-11-21 21:34
2005.12.11
Как узнать размер класера?


14-1132301693
clickmaker
2005-11-18 11:14
2005.12.11
Киньте, плиз, ссылку на проверку орфографии для MSO 2003


3-1129540419
Zhekson
2005-10-17 13:13
2005.12.11
Установка BDE