delphi как закрыть приложение

Delphi как закрыть приложение

av 13330

pippippip

min code word wrap on word wrap off

Программу (свою) грохаешь так

min code word wrap on word wrap off

Все пробовал. Не получается. Сообщение компилятора: обект Application не нахожу. Хотя имя главного модуля указано в предложении uses дочернего приложения. Если пишу MainForm.Close; или
Halt выбивает ошибку.

Добавлено 01.11.04, 09:12
Короче описываю задачу:
Есть DataModule в событии OnCreate которого я проверяю наличие файла даных на диске. В случае отсутствия такового необходимо завершить выполнение всего приложения в целом с выдачей соответствующего сообщения пользователю.
Помогите.

av 13330

pippippip

uses
Main, Windows, Messages, SysUtils, DB, ADODB, Classes, Dialogs,
ComObj;

type
TDM = class(TDataModule)
ADOConnect: TADOConnection;
ADOTable: TADOTable;
DataS: TDataSource;
procedure DataModuleCreate(Sender: TObject);
private
< Private declarations >
public

var
DM: TDM;
DataPath: string;
MainHWND: Longword;

Источник

Как закрыть программу через кнопку делфи

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tickКак вызвать через кнопку в делфи SQL Explorer
как вызвать через кнопку в делфи SQL Explorer, хочу сделать кнопку «для продвинутого пользователя».

tickкак сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно сообшение?(типа вы хотите закрыть программу/да или нет/)
как сделать так,чтобы когда я нажимаю кнопку закрыть в правом верхнем углу выходило окно.

Как при нажатии на кнопку закрыть программу
Объясните пожалуйста, что писать в обработчике кнопки чтобы она выключала программу?

Как открыть программу через делфи
Всем привет, дело вот в чем Нужно при нажатии кнопки сделать так, чтобы открывался уже созданный.

Решение

Если обязательно через делфи, предложу топорный метод.
подключаешь в uses ShellApi, а по нажатии своей кнопки пишешь:

Не согласен. Зачем прикручивать батник, если напрямую из программы можно завершать процесс по его имени?
Remeend, я уже приводил пример.

droider, да я сам не сторонник ни использования батников (ФУ!), ни ShellExecute, обычно ориентируюсь на то, что контингент, как и я, новички, и всякие мудреные решения их напрягают. Вот напишу я человеку вариант с использованием ShellExecuteEx, который растянется на строчек 7-10, он скажет:
— Эээ, спасибо, попробую. А может еще кто другой вариант подкинет?
ну или

Как скрыть кнопку закрыть
Ну или хотя бы сделать ее неактивной

tickКак дописать событие на стандартную кнопку закрыть?
Добрый день! Подскажите, пожалуйста, как дописать код на стандартную кнопку «закрыть». Что бы если.

tickКак закрыть форму при нажатии на кнопку
Есть форма Form3, созданная в конструкторе. Как сделать закрытие этой формы по нажатию на кнопку.

Источник

Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

Статистика за сегодня:

Онлайн на сайте: 27 ( 3404)
Онлайн в IRC: 2 ( 17)
Последние новости:
30 апреля 2012
Последний вопрос:
24 августа 2020, 10:44
Последний ответ:
29 марта 2018, 23:32

Лучшие эксперты

Вопрос # 3 785

Здравствуйте, уважаемые эксперты!
Вопрос такой: как закрыть программу запущенную функцией ShellExecute?

3394 50 open

Вопрос задал: Кириченко Сергей (статус: 1-ый класс)
Вопрос отправлен: 17 февраля 2010, 00:03
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Alexey6522

Здравствуйте, Кириченко!
По форуму конечно походить не судьба, не знал что для закрытия (убить процесс) программы, функцией ShellExecute, нужен какой-то особенный способ, так что же получается для каждого из способово запуска программ нужен свой индивидуальный способ что бы ее потом закрыть ))) насмешил. Я всегда пользуюсь CloseHandle(HWN: THWND); В вопросе # 3 779 это обсуждалось ;) удачи

Ответ отправил: Alexey6522 (статус: 1-ый класс)
Время отправки: 17 февраля 2010, 08:07

Мини-форум вопроса

Мережников Андрей (статус: Абитуриент), 17 февраля 2010, 06:05 [#1] :

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 08:09 [#2] :

Блин достали уже эти новички однодневки

min@y™ (статус: Доктор наук), 17 февраля 2010, 08:12 [#3] :

Цитата (Alexey6522):

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 11:38 [#4] :

Консольные приложения тоже отображаются в процессах, cmd.exe

min@y™ (статус: Доктор наук), 17 февраля 2010, 12:49 [#5] :

Цитата (Alexey6522):

Кириченко Сергей (статус: 1-ый класс), 17 февраля 2010, 13:13 [#6] :

Приложение оконное но к сожалению закрыть с помощью CloseHandle не выходит вот код:

procedure TForm1.Button1Click(Sender: TObject);
begin

IexpHandle:=ShellExecute (IEWnd,’open’,’c:\Program Files\Plus!\Microsoft Internet\Iexplore.exe’,’http://mail.ru’,»,SW_SHOW);
end;
//Каждый раз IexpHandle=42
procedure TForm1.Button2Click(Sender: TObject);
begin
CloseHandle(IexpHandle); //Вызывает исключительную ситуацию ‘External EXception C0000008’
end;

min@y™ (статус: Доктор наук), 17 февраля 2010, 13:29 [#7] :

Цитата (Кириченко Сергей):

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 13:56 [#8] :

Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 14:01 [#9] :

Кто говорил о корректном завершении, в овопросе этого не было, что нужно еще и сохранить данные на диске

min@y™ (статус: Доктор наук), 17 февраля 2010, 17:42 [#10] :

Цитата (Alexey6522):

Кириченко Сергей (статус: 1-ый класс), 18 февраля 2010, 11:07 [#11] :

Приведенный мною код не работает браузер не закрывается. Ошибка появляется если программу запускать со среды разработки, если же запускать в Windows ошибки нет но и результата тоже. Не могли бы вы привести пример как в моем конкретном случае закрыть чертову программу. Спасибо.

min@y™ (статус: Доктор наук), 18 февраля 2010, 11:36 [#12] :

Чтобы спокойно закрыть окно приложения, надо ему послать сообщение WM_SYSCOMMAND с флагом SC_CLOSE. Чтобы послать сообщение окну, надо знать его Handle. Чтобы узнать Handle, есть функции FindWindow(), EnumWindows(), EnumChildWindows().
Как идентифицировать окно InternetExplorer? Их может быть открыто несколько штук.

min@y™ (статус: Доктор наук), 18 февраля 2010, 11:39 [#13] :

И вообще, что за программу ты делаешь? Может в ней можно обойтись без InternetExplorer?

Кириченко Сергей (статус: 1-ый класс), 18 февраля 2010, 13:16 [#14] :

Задача поставлена такая: По нажатии горячих клавиш запустить InternetExplorer чтобы он открылся на странице HTTP://mail.ru/.
По повторном нажатии закрыть InternetExplorer. С задачей я справился другим способом (с помощью OLE), но я хочу разобраться с этим гребаным ShellExecute и как можно использовать Handle который он возвращает.
На форумах и в разных справках по WINAPI я нахожу разные описания

1.Функция возвращает Хендл открытого приложения или сервера DDE. Возвращаемое значение должно быть больше 32.

2.Функция возвращает Хендл экземпляра обьекта. Возвращаемое значение должно быть больше 32.

3.Функция возвращает Хендл окна запущенного приложения или сервера DDE. Возвращаемое значение должно быть больше 32.

И самое интересное что ни один способ закрыть приложение по этому Handle у меня не срабатывал. Вот я и решил прояснить ситуацию у вас.

Так вот как закрыть процесс (окно, приложение, программу) используя Handle возвращаемый фанкцией ShellExecute?

min@y™ (статус: Доктор наук), 18 февраля 2010, 13:36 [#15] :

Цитата (Кириченко Сергей):

Цитата:

Return Value

Кириченко Сергей (статус: 1-ый класс), 18 февраля 2010, 14:01 [#16] :

Спасибо. Теперь все ясно. Вот видите меня дезинформировали, а я вам голову морочу.

min@y™ (статус: Доктор наук), 18 февраля 2010, 14:13 [#17] :

Цитата (Кириченко Сергей):

Alexey6522 (статус: 1-ый класс), 18 февраля 2010, 14:26 [#18] :

Во первых что бы закрыть интернет страницу, тебе нужно найти ее по заголовку, в общем вот что у меня получилось

Alexey6522 (статус: 1-ый класс), 18 февраля 2010, 14:32 [#19] :

Если у тебя по умолчанию стоит FireFox какой-нибудь, а ты хочешь открыть с помощью Internet Explorer можешь открыть следующим способом, кстати это выход, так как FireFox открывает в новой вкладке, а если у тебя IExplore 6 версии, тогда лучше этот вариант

Кириченко Сергей (статус: 1-ый класс), 23 февраля 2010, 01:20 [#20] :

Всем большое спасибо за обсуждение.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Источник

Закройте и перезапустите текущее приложение в DELPHI

Как я могу это сделать?

по какой-то причине или выбран пользователем, «попросите» текущее приложение перезапустить его самостоятельно.

4 ответов

есть еще один способ закрытия-перезапуск приложения:

сохраните запланированную задачу на короткое время после закрытия приложения. Это должно быть ПОСЛЕДНИЙ вещь, которую ваше приложение делает перед выходом (без дальнейшей обработки данных, сохранения, загрузки или чего-либо еще)

когда ваша программа запускается снова, она должна проверить наличие любой такой запланированной задачи и удалить их. Это должно быть ПЕРВЫЙ действие ваше приложение должно делать при запуске. (очистка)

АФАИК, Дельфийский джедай в наборе компонентов есть компонент, с помощью которого можно выполнять планирование задач.

Я могу добавить к @Andreas Rejbrand ответ:

вы можете иметь отдельный простой перезапуск.exe программа, которую вы запускаете из своей программы и передаете ей имя исполняемого файла. Затем закройте программу. Программа перезапуска может подождать некоторое время или пока исполняемый файл не будет доступен для чтения, что, по-видимому, означает, что он не работает, затем он может выполнить его и закрыть себя.

Я ожидаю, что есть лучший способ сделать это, возможно, sombody может предоставить лучшее решение, но эта функция, похоже, говорит мне, является ли исполняемый файл в настоящее время работает:

Источник

Создание, закрытие и вызов форм

Рождение, жизнь и гибель формы.

Перевод одноимённой статьи с сайта delphi.about.com )

Как сделать, чтобы форма закрывалась при нажатии Esc?

Для начала необходимо установить свойство формы KeyPreview в True. А потом уже можно отлавливать «Esc»:

procedure TForm1.FormCreate(Sender: TObject);

(Sender: TObject; var Key: Char);

if key = #27 then Close;

Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Просто замените конструктор Create класса Вашей формы.

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

TForm2 = class (TForm)

constructor CreateWithCaption(aOwner: TComponent; aCaption: string );

constructor TForm2.CreateWithCaption(aOwner: TComponent; aCaption: string );

procedure TForm1.Button1Click(Sender: TObject);

Unit2.Form2 := Unit2.TForm2.CreateWithCaption(Application, ‘My Caption’ );

Как создать и вызвать модальную форму?

В каком порядке происходят события при создании и показе окна?

При создании окна обработчики событий выполняются в следующем порядке:

Copyright © 1996 Epsylon Technologies

Взято из FAQ Epsylon Technologies

Как использовать форму из DLL

Необходимо, чтобы дочерняя форма не активизировала родительское окно

Сделайте родительским окном рабочий стол.

procedure TForm2.CreateParams( VAR Params: TCreateParams);

Можно ли динамически менять какая форма считается главной в приложении во время работы программы?

Можно, но только во время загрузки приложения. Чтобы сделать это выберите «View->Project Source» и измените код инициализации приложения, так что порядок создания форм зависил от какого-то условия.

Примечание: Вам придется редактировать этот код, если Вы добавите в приложение новые формы.

Условие создания главной формы

Существует ли в Delphi возможность создавать главную форму по условию? Я хочу использовать условие IF (в зависимости от передаваемого параметра) для того, чтобы определить какая форма будет главной при старте приложения. Фактически «другую» форму НЕ нужно будет загружать.

Как сделать окно системно-модальным?

Используйте функцию Windows API SetSysModalWindow(). Код ниже демонстрирует технологию работы с этой функцией. В любой момент времени может быть возможен только один модально-системны диалог, чей дескриптор возвращается функцией SetSysModalWindow(). Вам необходимо запомнить возвращаемую функцией величину для того, чтобы завершить показ диалога таким образом. Вот как примерно это должно выглядеть:

Форма изменяющая размеры без заголовка

Форма изменяющая размеры без заголовка.

Нужно выставить свойство формы BorderStyle := bsNone;

TForm1 = class (TForm)

procedure CreateParams( var Params: TCreateParams); override ;

procedure TForm1.CreateParams( var Params: TCreateParams);

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • delphi запуск внешнего приложения
  • delphi добавить форму в проект