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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2010, 07:25   #1
GX_h10
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 28
По умолчанию Использование закладок в DBGrid

Проблема в следующем: при достижении курсором последней строки, если нажать "insert",
либо клавишу курсора "вниз" - входим в редактирование новой строки. Если выйти из
редактирования этой строки, то она остается. Если повторить выше
описанные действия, то строки можно плодить до бесконечности. Вопрос: как от этого избавиться?

Код:
procedure TForm.ADOQuery1AfterPost(DataSet: TDataSet);
var
  aBookmark:TBookmark;
begin
  aBookmark := ADOQuery1.GetBookmark;
  ADOQuery1.DisableControls;
  try
    if ADOQuery1.BookmarkValid(aBookmark) then
    ADOQuery1.GotoBookmark(aBookmark);
  finally
    ADOQuery1.FreeBookmark(aBookmark);
    ADOQuery1.EnableControls;
  end;
end;
GX_h10 вне форума Ответить с цитированием
Старый 09.03.2010, 07:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Если выйти из редактирования этой строки, то она остается
Не понял... Я кидаю грид, цепляю его к Table, когда достигаю последней записи и нажимаю стрелку вниз появляется новая пустая запись. Если я в ее ничего не ввел и перескочил на другую запись, она исчезает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.03.2010, 08:14   #3
GX_h10
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 28
По умолчанию

Нет, принцип именно в том, что если повторить действие, то появится следующая строка и т.д.
GX_h10 вне форума Ответить с цитированием
Старый 09.03.2010, 08:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

хм... Ну не знаю... У меня ничего не появляется...
Тут ты точно что-то надемократил в проекте лишнего...
Нужно короче в код лезть, и отлаживать его.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.03.2010, 12:41   #5
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Не конкретно по вопросу, но тоже идея...
при щелчке на кнопку открывается форма.
Код:
procedure TForm1.N7Click(Sender: TObject);
begin
Form5.Caption:='Добавление записи в таблицу "План работ"';
Form5.Button1.Caption:='Добавить';
Form5.Edit1.Clear;
Form5.Edit2.Clear;
Form5.Edit3.Clear;
Form5.ShowModal;
end;
Создается новая запись, при щелчке на кнопеке на появившейся форме:
Код:
procedure TForm3.Button2Click(Sender: TObject);
begin
if Edit1.Text='' then showmessage('Номер изделия обязателен!') else
begin
if Button2.Caption='Добавить' then
 begin
 ZQuery1.SQL.Text:='Insert into izdels (izdel_id,izdel_name,izdel_info) values ('''+Edit1.Text+''','''+edit2.Text+''','''+edit3.Text+''')';
 ZQuery1.ExecSQL;
 Form1.ZQuery1.Refresh;
 end else
 begin
 try
 ZQuery1.SQL.Text:='Update izdels set izdel_id='''+Edit1.Text+''',izdel_name='''+Edit2.Text+''',izdel_info='''+Edit3.Text+''' where izdel_id='+Form1.DBGridEh1.Columns[0].Field.AsString;
 ZQuery1.ExecSQL;
 Form1.ZQuery1.Refresh;
 except
 showmessage('Удалите значение из других таблиц!!!');
 end;
 end;
close();
end;
end;
Вот всё что нужно. Кое-что уберете, допишите свое условие последней записи, и вместо щелчка по кнопке на форме сделаете событие нажима кнопки на клаве и туда впишите получившийся код.
И во ещё что, для того, чтобы не создавалась пустая запись попробуйте ввести проверку на пустоту ячеек актвной записи, если же они пустые то возвращайте букмарк на строку выше, а пустую удаляйте. Это не сложно.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"

Последний раз редактировалось ImmortalAlexSan; 09.03.2010 в 12:50.
ImmortalAlexSan вне форума Ответить с цитированием
Старый 09.03.2010, 12:56   #6
GX_h10
Пользователь
 
Регистрация: 20.04.2009
Сообщений: 28
По умолчанию

Stilet, да, действительно проблема была в коде. Спасибо!
GX_h10 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос связи двух закладок Окоча Юра Microsoft Office Word 2 01.03.2010 13:55
Удобный диспетчер закладок Sola Фриланс 4 29.09.2009 16:20
Отображение закладок из ВебБраузера1 beemoto Работа с сетью в Delphi 3 21.04.2009 17:37
панель закладок blackstersl Общие вопросы Delphi 4 24.09.2008 15:20
Использование проц. KeyDown для DBGrid Максим_Леонидович Общие вопросы Delphi 3 22.07.2008 03:31