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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2012, 06:11   #1
Афанасий[vedma]
Вечнодумающий
Форумчанин
 
Аватар для Афанасий[vedma]
 
Регистрация: 14.07.2011
Сообщений: 161
По умолчанию Сохранение при выходе

Привет всем=)
Работаю над текстовым редактором. Код при выходе:
Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
    if MessageDlg('Документ не сохранен. Сохранить документ?', mtInformation, [mbYes, mbNo], 0) = mrYes then
    if SaveDialog1.Execute then
      richedit1.Lines.SaveToFile(SaveDialog1.FileName)
  else
    Close;
end;
Проблема: он должен так спрашивать, когда мой RichEdit1 имеет 1 или более символов, а он постоянно спрашивает при выходе, даже когда RichEdit1 пустой.
Сохранение по идее должно идти по такой схеме:
"Если RichEdit заполнен, то Спрашиваем, иначе просто Выход"
Из лоскутов Добра, шьется полотно Зла
Афанасий[vedma] вне форума Ответить с цитированием
Старый 07.07.2012, 07:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
    if (trim(RichEdit.Lines.Text)<>'') and 
       (MessageDlg('Документ не сохранен. Сохранить документ?', mtInformation, [mbYes, mbNo], 0) = mrYes ) and 
       (SaveDialog1.Execute) then
      richedit1.Lines.SaveToFile(SaveDialog1.FileName)
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.07.2012, 08:29   #3
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Возможно нужно также проверять свойство RichEdit.Modified
Тогда будет:
Код:
if ((trim(RichEdit.Lines.Text)<>'') or (RichEdit.Modified)) and 
       (MessageDlg('Документ не сохранен. Сохранить документ?', mtInformation, [mbYes, mbNo], 0) = mrYes ) and 
       (SaveDialog1.Execute) then
astecenko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подтверждения при выходе из программы Ayubkhon Общие вопросы Delphi 18 18.06.2013 00:53
Obj-C iPhone сохранение состояния приложения при выходе и загрузка при входе krugolet Помощь студентам 0 22.05.2012 20:13
Ошибка при выходе из программы Warn Общие вопросы Delphi 3 07.11.2011 16:16
Зависание программы при выходе codermoder Работа с сетью в Delphi 6 18.12.2010 23:16
Ошибка при выходе из игры cs 1.6 pavel42 Компьютерное железо 19 20.10.2009 21:00