Главная страница
    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.47 MB
Время: 0.037 c
2-1133043077
Дмитрий Ка
2005-11-27 01:11
2005.12.11
Как изменить знак перемнной?


4-1128575004
ProgramMaster
2005-10-06 09:03
2005.12.11
Отслеживание появления окна


4-1127738848
NikNet
2005-09-26 16:47
2005.12.11
Как сделать мою форму позади всех?


14-1132330160
x.pro
2005-11-18 19:09
2005.12.11
С днем студента!


2-1132666961
DelphiLexx
2005-11-22 16:42
2005.12.11
Что такое TrueType шрифты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский