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

Вниз

AdoTable.Cancel не работает.   Найти похожие ветки 

 
Sergey B.   (2003-09-17 16:41) [0]

Есть программа, по нажатию кнопки следующий код:

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.


 
Johnmen ©   (2003-09-17 16:46) [1]

Проверять надо не сендер, а модалрезалт.


 
Reindeer Moss Eater ©   (2003-09-17 16:48) [2]

If (ShowModal = mrOk) and (DogovorTable.State in dsEditModes) then DogovorTable.Post


 
Sergey B.   (2003-09-17 17:30) [3]

Дело в том что если кнопкам ставить 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;

Может я чего то упустил???



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-18422
lovres
2003-09-24 15:15
2003.10.06
Как программно вызвать переход фокуса на следущ. контрол?


4-18687
gluka
2003-07-31 16:47
2003.10.06
Hook на WM_CREATE или HSHELL_WINDOWCREATED ?


1-18320
LordBTR
2003-09-23 11:45
2003.10.06
Русификация приложений


3-18279
Denizzz
2003-09-17 12:04
2003.10.06
Авторасчет


3-18239
KSergey
2003-09-16 13:35
2003.10.06
DBEdit и присвоение ему значения программно