![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по table и dbgrid! Помогите срочно плз!! [D6, IB5.x, Paradox]
digester © (2003-02-22 11:54:00)Ситуация такая: есть table1 и dbgrid, связанные друг с другом datasource на первой форме. На второй форме dbedit и dbmemo. Нажимая на первой форме кнопку "добавить" -> выскакивает вторая форма(с dbedit"om и memo), вводя какую-нить инфу и нажимая "ОК", эта информация отображается на первой форме только в 1-ой строке(сразу под индексами) :((( и постоянно перезаписывается.Как сделать чтобы, после нажатия "OK" в table1 заносилась информация из dbedit и dbmemo 2-ой формы, в последующие строки table1(что на 1-ой форме).??????
Заранее спасибо! Жду ответа.
kaif (2003-02-22 22:23:00) [1]Наилучшее решение такое:
В обработчик OnClose второй формы вписываешь
with Form1.table1 do
if State in [dsEdit, dsInsert] then
Cancel;
//это для того, чтобы при любом способе закрытия второй формы не остаться в режиме редактирования.
В обработчик OnClick кнопки OK вписываешь
with Form1.table1 do
if State in [dsEdit, dsInsert] then
begin
Post;
self.Close;
end;
//для того, чтобы сохранить изменения и закрыть вторую форму только в случае, если это удалось.
На второй форме еще сделай кнопку Cancel со свойством
Cancel = True и
ModalResult = mrCancel
Тогда она без обработчика закроет окно.
Создай обработчик table1.AfterInsert и назначь его одновременно событию table1.AfterEdit
В этот обработчик впиши:
with TForm2.Create(nil) do
try
ShowModal;
finally
Free;
end;
//Тогда при любом добавлении или редактировании таблицы появится форма Form2.
Далее в обработчик кнопки "Добавить" впиши
table1.Insert или table1.Append (по вкусу)
//Append добавляет новую строку в конец набора, Insert - перед текущей записью.
Все. Хорошо бы еще кнопки "Удалить" и "Изменить" добавить в Form1... :))
Романов Р.В. (2003-02-22 12:00:00) [2]Append, AppendRecord?
Anatoly Podgoretsky (2003-02-22 11:57:00) [3]А повнятней