Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
2-1132812477
hed
2005-11-24 09:07
2005.12.11
Опредилить тип файла ?


2-1132619370
Кейт Тимонс ))
2005-11-22 03:29
2005.12.11
Узнать версию виндовз


14-1132252990
DK2DK2DK2
2005-11-17 21:43
2005.12.11
поднять свой сервер


2-1133123060
John Doe
2005-11-27 23:24
2005.12.11
Недекларированная SysMsgProc и ее параметры


1-1131803201
Dmitrich
2005-11-12 16:46
2005.12.11
Мышка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский