Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2008, 14:53   #1
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
Счастье Переход к другой процедуре

Я знаю, что есть оператор goto. Приблизительно знаю как он работает. Но не могу довести до ума.
У меня по закрытию формы OnCloseQuery прописан код, сохраняющий изменения в текстовом файле. И есть команда Файл->Выход. Там мне не охота второй раз писать то же самое (да и получается с ошибкой).
Как мне по нажатию этой команды заставить выполнится код процедуры OnCloseQuery?
Помогите, пожалуйста!
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 13.07.2008, 15:02   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
procedure TForm1.N1Click(Sender: TObject);
var b: boolean;
begin
  Form1.FormCloseQuery(Sender, b)
end;
eoln вне форума Ответить с цитированием
Старый 13.07.2008, 15:12   #3
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
Восклицание

Спасибо. Работает, но с ошибкой. По нажатию крестика все пашет как надо: выскакивает сообщение "Сохранить? Да Нет Отмена" Там все работает как надо. А если по предложенному тобой коду, то после Файл->Выход появляется сообщение. Но выбрав Да, Нет либо Отмена сообщение закрывается, а форма - нет.
Надеюсь понятно выразилась...
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 13.07.2008, 15:23   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
Form1.FormCloseQuery(Sender, b); //выполняем процедуру
if b then application.Terminate //уходим
eoln вне форума Ответить с цитированием
Старый 13.07.2008, 15:50   #5
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

Ой, спасибки! Исчё вопросик. Что такое application.Terminate ?
Уж простите, я чайник полнейший. и F1 меня не спасает. ))
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 13.07.2008, 15:54   #6
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

Невижу смысла в вызове CloseQuery, т.к это событие вызывается автоматом при закрытии формы.
Alter вне форума Ответить с цитированием
Старый 13.07.2008, 15:57   #7
Detka
Чайник :D
Пользователь
 
Регистрация: 22.12.2006
Сообщений: 65
По умолчанию

Ну дык мне ж надо, что прога не просто закрылась. А сначала спросила: "Сохранить изменения?". Вот
Мы все учились по-немногу
Чему-нибудь и как-нибудь...

Пушкин А.С.
Detka вне форума Ответить с цитированием
Старый 13.07.2008, 16:50   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Сообщение от Detka Посмотреть сообщение
Ой, спасибки! Исчё вопросик. Что такое application.Terminate ?
Уж простите, я чайник полнейший. и F1 меня не спасает. ))
Чем же не спасает F1 ? вот собственно из F1:
Код:
Ends application execution.
 
Class 
TApplication 

Syntax 


[Delphi] procedure Terminate();


Description 
Call Terminate to end the application programmatically. By calling Terminate rather than freeing the application object, you allow the application to shut down in an orderly fashion.
 
Terminate calls the Windows API PostQuitMessage function to perform an orderly shutdown of the application. Terminate is not immediate.
 
Terminate is called automatically on a WM_QUIT message and when the main form closes.
Вызывать в кнопке принудительно событие не имеет смысла. Напиишите close; и событие onclosequery вызовится само.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как реализовать процедуру в процедуре? Аlex Помощь студентам 11 14.07.2008 10:14
Вопрос по процедуре VenMaster Общие вопросы Delphi 5 13.06.2008 17:37
Вызывание процедуры в другой процедуре Dura4ok Общие вопросы Delphi 7 22.01.2008 19:45
Ошибка в процедуре GAGARIN-NEW Помощь студентам 2 21.12.2007 09:23