![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
AdoTable.Cancel не работает. [D7, Access XP]
Sergey B. © (2003-09-17 16:41:00)
Есть программа, по нажатию кнопки следующий код:
procedure TTovarForm.AddBitBtnClick(Sender: TObject);
begin
DataModule1.DogovorTable.Insert;
AddTovarForm:=TAddTovarForm.Create(Application);
AddTovarForm.ShowModal;
AddTovarForm.Free;
TovarForm.Repaint;
end;
На модальной форме расположены компоненты DBEdit и две кнопки (ОК И САNcel).
По кнопке Сancel просто закрываем форму, а в обработчике закрытия пишем:
if (sender=(AddTovarForm.CancelBitBtn)) then
DataModule1.DogovorTable.Cancel
else
Datamodule1.DogovorTable.Post;
Так вот После нажатия "cancel", в таблицу добавляется пустая запись Datamodule1.DogovorTable.
Если засунуть
DataModule1.DogovorTable.Cancel
В обработчик
procedure TAddTovarForm.CancelBitBtnClick(Sender: TObject);
begin
(ВОТ СЮДА)
Close;
end;
а из закрытия окна убрать
DataModule1.DogovorTable.Cancel
Запись не добавляется, но вываливается ошибка
о том что "TAble not in insert or edit mode"
procedure TTovarForm.AddBitBtnClick(Sender: TObject);
begin
DataModule1.DogovorTable.Insert;
AddTovarForm:=TAddTovarForm.Create(Application);
AddTovarForm.ShowModal;
AddTovarForm.Free; (В ЭТОЙ СТРОКЕ)
TovarForm.Repaint;
end;
По кнопке OK всё работает как часы!!!!
procedure TAddTovarForm.OkBitBtnClick(Sender: TObject);
begin
If (TovarAddDBEdit.Text="") or (ValAddDBEdit.Text="")
or (SummDBEdit.Text="")
then begin
Application.MessageBox("НЕ ЗАПОЛНЕНО ОДНО ИЗ ПОЛЕЙ!!!","Внимание",MB_OK);
Exit;
end
else
AddTovarForm.Close;
end;
Подскажите кто что думает???
С Уважением Sergey B.
Sergey B. (2003-09-17 17:30:00) [1]
Дело в том что если кнопкам ставить ModalResult, тогда
procedure TAddTovarForm.OkBitBtnClick(Sender: TObject);
begin
If (TovarAddDBEdit.Text="") or (ValAddDBEdit.Text="")
or (SummDBEdit.Text="")
then begin
Application.MessageBox("НЕ ЗАПОЛНЕНО ОДНО ИЗ ПОЛЕЙ!!!","Внимание",MB_OK);
Exit;
end
else
AddTovarForm.Close;
end;
Форма закрывается, а должна не закрываться пока будет пусто одно из полей???
Application.MessageBox("НЕ ЗАПОЛНЕНО ОДНО ИЗ ПОЛЕЙ!!!","Внимание",MB_OK);
Exit;
end
else
AddTovarForm.Close;
end;
Может я чего то упустил???
Reindeer Moss Eater (2003-09-17 16:48:00) [2]
If (ShowModal = mrOk) and (DogovorTable.State in dsEditModes) then DogovorTable.Post
Johnmen (2003-09-17 16:46:00) [3]
Проверять надо не сендер, а модалрезалт.