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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2008, 22:24   #1
Акашаев Нурлан
Пользователь
 
Регистрация: 02.05.2007
Сообщений: 53
По умолчанию Действо при закрывании

Я хочу чтобы при закрывании проги, она мне предлагала сохранить док.(как в блокноте) Как я могу это вызвать? Или придётся самому велосипед заново изобретать?
Акашаев Нурлан вне форума Ответить с цитированием
Старый 29.06.2008, 22:39   #2
Artificial
Пользователь
 
Аватар для Artificial
 
Регистрация: 03.11.2007
Сообщений: 91
По умолчанию

В событии OnCloseQuery обрабатывай, если документ не соответствует изначальному его виду, то предложи сохранить..
Нашел код, когда-то делал так, быть может изобретал велосипед, незнаю:
При Открытии/Сохранении файла SaveStatus изменялся..
Код:
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if (SaveStatus = 2) then begin
MessageShow:='Save file' + FileName + '?';
DlgBtn:=MessageDlg(MessageShow,mtConfirmation, [MbYes,mbNo,mbCancel], 0);
// Checking Pressed Button
if (DlgBtn = mrYes) then Save1Click(Sender);
if (DlgBtn = MrNo) then CanClose:=true
                                           else CanClose:=false;
end;
if (SaveStatus = 3) then begin
MessageShow:='Save file' + FileName + '?';
DlgBtn:=MessageDlg(MessageShow,mtConfirmation, [MbYes,mbNo,mbCancel], 0);
// Checking Pressed Button
if (DlgBtn = mrYes) then SaveAs1Click(Sender);
if (DlgBtn = MrNo) then CanClose:=true
                                           else CanClose:=false;
end;
end;
Вот, полуфабрикат..

Последний раз редактировалось Artificial; 29.06.2008 в 22:48.
Artificial вне форума Ответить с цитированием
Старый 30.06.2008, 08:38   #3
Акашаев Нурлан
Пользователь
 
Регистрация: 02.05.2007
Сообщений: 53
По умолчанию

а что значит savestatus?
Акашаев Нурлан вне форума Ответить с цитированием
Старый 30.06.2008, 09:55   #4
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Акашаев Нурлан
Код:
var savestatus:integer;
Скажем при старте savestatus=0, а при изменении документа savestatus=3
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 30.06.2008, 11:25   #5
Artificial
Пользователь
 
Аватар для Artificial
 
Регистрация: 03.11.2007
Сообщений: 91
По умолчанию

Совершенно верно.
Artificial вне форума Ответить с цитированием
Старый 30.06.2008, 11:31   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
если документ не соответствует изначальному его виду
а обычно делают еще проще, достаточно кликнуть машью или стереть букву а потом ее же вписать обратно, чтобы программа предложила сохранить изменения
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 30.06.2008, 12:17   #7
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Ну, у всякого текстового редактора в делфи есть процедура OnChange, что в TMemo, что в TRichEdit. Вот и исходим из этого.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 30.06.2008, 13:20   #8
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Цитата:
Ну, у всякого текстового редактора в делфи есть процедура OnChange, что в TMemo, что в TRichEdit. Вот и исходим из этого.
Есть свойство Modified, если true то были изменения.
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 30.06.2008, 17:05   #9
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Верно, но в OnChange за одно можно обрабатывать "Undo"(отмена изменений)
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Ответ


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