![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменения в наборе данных
RDA © (2002-06-29 15:11:00)Мастера подскажите как узнать изменил ли пользователь данные в наборе или нет, для того чтобы задать вопрос "Сохранять или нет изменения"
PavelB (2002-07-01 09:58:00) [1]а почему бы не использовать свойство Modified TDataSet
Lola (2002-06-30 12:59:00) [2]По-моему, сравнивать надо при потере фокуса компонентом и переменная - FModified := True, а запрашивать о сохранении, если выбрали другую операцию типа "добавить запись" или "печать", т.е. не только при закрытии формы. Тогда и все сравнивать не придется.
Anatoly Podgoretsky (2002-06-30 11:45:00) [3]kaif © (30.06.02 04:34)
Нет нужды сохранять и оповещать пользователя, если нет изменения, оповещать нужно при только отмене операции если есть измененые данные, а иначе пользователь взмолится на такой добрый серсвис
dus (2002-06-30 11:05:00) [4]Только способ, предложенный kaif"ом тоже не лишен недостатков. Представь, что пользователь вводитинформацию: ввел один символ - отработали, ввел другой - опять отработали, хотя вроде бы и незачем...
RDA, пиши конкретнее, какой компонент используешь.
kaif (2002-06-30 04:34:00) [5]Можно, конечно и сравнить все, как предлагает, Anatoly Podgoretsky © (29.06.02 20:20)
:))
А затем, если пользователь все же хочет сохранить написать:
ShowMessage("Да тут сохранять нечего! Измените что-нибудь и нажмите OK еще раз");
(шутка)
kaif (2002-06-30 04:28:00) [6]Нужно сделать переменную 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 Присваивать.
----------
В общем, что-то в этом роде...
Anatoly Podgoretsky (2002-06-29 20:20:00) [7]Если примененные тобой компоненты не поддерживают саойство modified, то как минимум помможет старинный, проверенный метод, сохранить и сравнить
Lola (2002-06-29 19:47:00) [8]В каком компаненте он вводит данные?