На форме лежит Notebook. У него две страницы на первой странице DBGrid связаная с базой данных, из которой DBGrid отображает некую информацию. Чтобы ввести новые данны надо нажать кнопку. При этом открывается вторая страница Notebook на которой расположены всякие спинэдиты, дататаймпикеры и стринггрид. Количество строк в гриде связано со значением спинэдита. В гриде две колонке. В первой идёт просто номерация от 1 до SpinEdit.Value. Во второй колонке можно выбирать строго заданные значения спомощью комбобокса. когда все данные вводятся нажимается кнопка добавить Notebook переключается на первую страницу и в DBGrid отображается соответственно на одну строку больше. Проблема заключается в следующем. Когда во второй раз вызывается вторая страница ноутбука во второй колонке Стринггрида остаются старые значения!!!! замучелся что я только не делал и очищал этот грид и удалял строки всё равно почему-то эти данные остаются? Может кто подскажет что бы это могло быть? Вот код:
1. Нажатие на кнопку новая запись
| Код | PaperN.DataSource1.DataSet:=nil; PaperN.ADOQuery1.Close; PaperN.ADOQuery1.SQL.Clear; PaperN.Notebook1.PageIndex:=1;
|
2. нажатие кнопки добавить запись
| Код | PaperN.ADOQuery1.SQL.Add('SELECT * FROM PageN'); PaperN.ADOQuery1.Open; for i:=0 to PaperN.SpinEdit3.Value-1 do begin PaperN.ADOQuery1.Append; PaperN.ADOQuery1.FieldByName('ID').AsString:='PN'+IntToStr(a); PaperN.ADOQuery1.FieldByName('Number').AsInteger:=StrToInt(PaperN.StringGrid1.Cells[0,i]); PaperN.ADOQuery1.FieldByName('Name').AsString:=PaperN.StringGrid1.Cells[1,i]; PaperN.ADOQuery1.Post; end; PaperN.ADOQuery1.Close; PaperN.ADOQuery1.SQL.Clear; with StringGrid1 do for i := 0 to ColCount - 1 do for k := 0 to RowCount - 1 do Cells[i, k] := ''; PaperN.StringGrid1.RowCount:=1; PaperN.Notebook1.PageIndex:=0;
|
3. Другой вариант нажатия кнопки добавить запись
| Код | for i:=0 to PaperN.StringGrid1.RowCount-1 do begin TFakeGrid(PaperN.StringGrid1).DeleteRow(0); end; PaperN.Notebook1.PageIndex:=0;
|
Помогите пожалуйста!!!!!!!!!!!!! |