Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.11.2006, 10:45
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
Вопрос Отлов пользовательских изменений на форме

Приветствую.
Представим что на форме куча компонентов для получения от пользователя какой-то информации. Он открывает эту форму, но изменений не вносит. При нажатии кнопки закрыть, форма безропотно закрывается. Но если он вносит хот какое-то изменение в форму, то при закрытии должно появиться окно с предложением сохранить измененные данные.

Вопрос, как вы решали эту обыденную задачу?

На ум приходит два способа: 1) поставить событие на изменение каждого компонента и менять флаг; 2) сохранять данные в форме при старте и сравнивать их с данными на форме при выходе.

Что предложите?
Ответить с цитированием
  #2  
Старый 16.11.2006, 12:23
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Если эти компоненты Edit'ы и/или Memo, то перед выходом можешь проверить состояние свойства CanUndo. Изначально, оно у всех равно false, но как только в каком нибудь компоненте изменилось содержимое, свойство CanUndo становится равным true. Вот и проверяй перед выходом, если хоть у одного CanUndo = true, то предлагай сохранить данные.
Ответить с цитированием
  #3  
Старый 16.11.2006, 19:19
CyberM@D CyberM@D вне форума
Прохожий
 
Регистрация: 07.11.2006
Адрес: г.Санкт-Петербург
Сообщения: 31
Репутация: 10
Лампочка

Вдогонку к ответу Decoding'a - ответ верный, если компоненты, как он и сказал, так вот проверяй все это ИМЕННО в CloseQuery в форме, а не в Close!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter