Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Изменения в наборе данных   Найти похожие ветки 

 
RDA ©   (2002-06-29 15:11) [0]

Мастера подскажите как узнать изменил ли пользователь данные в наборе или нет, для того чтобы задать вопрос "Сохранять или нет изменения"


 
Lola ©   (2002-06-29 19:47) [1]

В каком компаненте он вводит данные?


 
Anatoly Podgoretsky ©   (2002-06-29 20:20) [2]

Если примененные тобой компоненты не поддерживают саойство modified, то как минимум помможет старинный, проверенный метод, сохранить и сравнить


 
kaif ©   (2002-06-30 04:28) [3]

Нужно сделать переменную FModified: boolean. Затем в обработчик DataSource.OnDataChange вписать:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if Field <> nil then
FModified := True;
end;
---------
Затем в событии OnCloseQuery формы проверить FModified:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if FModified then
case MessageDlg("Сохранить изменения", mtConfirmation,
[mbYes, mbNo, mbCance], 0) of
mrYes: SaveChanges;
mrCancel: CanClose := False;
end;
end;
----------
Затем написать процедуру сохранения, в которой FModified после успешного сохранения False Присваивать.
----------
В общем, что-то в этом роде...


 
kaif ©   (2002-06-30 04:34) [4]

Можно, конечно и сравнить все, как предлагает, Anatoly Podgoretsky © (29.06.02 20:20)
:))
А затем, если пользователь все же хочет сохранить написать:
ShowMessage("Да тут сохранять нечего! Измените что-нибудь и нажмите OK еще раз");
(шутка)


 
dus   (2002-06-30 11:05) [5]

Только способ, предложенный kaif"ом тоже не лишен недостатков. Представь, что пользователь вводит информацию: ввел один символ - отработали, ввел другой - опять отработали, хотя вроде бы и незачем...

RDA, пиши конкретнее, какой компонент используешь.



 
Anatoly Podgoretsky ©   (2002-06-30 11:45) [6]

kaif © (30.06.02 04:34)
Нет нужды сохранять и оповещать пользователя, если нет изменения, оповещать нужно при только отмене операции если есть измененые данные, а иначе пользователь взмолится на такой добрый серсвис


 
Lola ©   (2002-06-30 12:59) [7]

По-моему, сравнивать надо при потере фокуса компонентом и переменная - FModified := True, а запрашивать о сохранении, если выбрали другую операцию типа "добавить запись" или "печать", т.е. не только при закрытии формы. Тогда и все сравнивать не придется.


 
PavelB   (2002-07-01 09:58) [8]

а почему бы не использовать свойство Modified TDataSet



Страницы: 1 вся ветка

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
1-70756
Виталик
2002-07-09 17:41
2002.07.22
ToolBar.flat := true ?????


14-70909
Manist
2002-06-25 17:28
2002.07.22
Как в GTA 3 летать на самолетике Dodo?


3-70600
maxi
2002-06-29 14:44
2002.07.22
TOracleDataSet из DOA жрет память и не отдает. Как исправить ?


1-70734
Петр Мельников
2002-07-10 23:32
2002.07.22
Как создать компонент, который бы имел все свойства Ttimer.....


3-70612
dimanew
2002-06-28 09:12
2002.07.22
Datapump переводил из Парадокса в IB все таблицы нормально