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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2016, 19:03   #1
Des80
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 21
По умолчанию DataSet

у меня есть dataset, который привязан через datasource к dbgrid. Я хочу, чтобы при попытке сделать post у меня при определенном условии вылезало сообщение и dataset оставался в режиме редактирования, то есть не происходит post, пока пользователь не исправит то что должен либо не отменит редактирование.
Понятно что надо написать что то в Onbeforepost, но как запретить выполнять дальше post и остаться в режиме edit/insert ?

Последний раз редактировалось Des80; 19.09.2016 в 19:06.
Des80 вне форума Ответить с цитированием
Старый 19.09.2016, 19:29   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Abort
DataSet.Cancel, это не должно оставить в режиме редактирования. Abort по идее должен, подзабыл
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 19.09.2016 в 19:31.
Аватар вне форума Ответить с цитированием
Старый 20.09.2016, 10:47   #3
Des80
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Abort
DataSet.Cancel, это не должно оставить в режиме редактирования. Abort по идее должен, подзабыл
Abort остановит не только post но и все что должно было идти после него, например грид не отрисовывается и тд
Des80 вне форума Ответить с цитированием
Старый 20.09.2016, 10:57   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Я хочу, чтобы при попытке сделать post
TDataSet. events. BeforePost
Delphi Example
Цитата:
This example checks for a valid entry in a TDBEdit control and calls the Abort procedure if the control is empty; Abort cancels the post before it happens.

Код:
procedure TForm1.MyDataBeforePost(DataSet: TDataSet);

begin
if DBEdit1.Text = '' then
  Abort;

end;
Цитата:
Abort остановит не только post но и все что должно было идти после него, например грид не отрисовывается и тд
А грид и не надо рисовать ПОСЛЕ чего либо. Он "рисуется сам" всегда ПОСЛЕ того как изменили данные.
и НЕ ТОЛЬКО тогда, но всегда сам. Разве что с "небольшой" помощью. OnDrawCell

Код:
try
  dataSet.Post;
except 
  on e: Abort do ShowMessage('проверка показала недостаток данных'); 
  on e: Exception do Showmessage(e.Message); 
end;
// а теперь можешь делать все что хочешь
или же
при нажатии кнопки сохранения ButtonSaveClick
Код:
if .......... then Ds.Post
else ShowMessage('вы еще не все ввели');
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 20.09.2016 в 11:15.
evg_m вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DataSet 5cek БД в Delphi 0 15.09.2014 10:52
Строку из одного DataSet в другой DataSet Abbath1349 Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 22.05.2011 19:26
Из DataSet работающего по циклу в DataSet maroder22 БД в Delphi 1 05.09.2010 23:22
dataset sergei64_89 Общие вопросы .NET 1 19.09.2008 20:14