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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 23:52   #1
ShnapS
Пользователь
 
Регистрация: 15.05.2008
Сообщений: 44
По умолчанию Нумерация строк

Здраствуйте. Интересует такой вопрос, у меня есть таблица которая отображается в BDGrid в которую я могу как добавлять так и удалять строки. После удаления строки и добавления следуйщей сбивается нумерация. Подскажите как исправить?
Содержание кнопки "Удалить"
Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Delete;
end;
ScreenShot:
http://piccy.info/view/b473a7461659f...33bff7328348a/
ShnapS вне форума Ответить с цитированием
Старый 05.05.2009, 00:47   #2
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

я как понял поле ID у тебя Счетчик, его изменять нельзя (Read-Only)
если записей не много то подойдет цикл, для нумерования строк в таблице. Создай еще одно поле с именем ID2, и меняй код кнопки на этот

Код:
procedure TForm1.Button2Click(Sender: TObject);
   var
      i,x:integer;
begin
   DataSource1.Enabled:=False;
   i:=Table1.RecNo;
   Table1.Delete;
   Table1.First;
   for x:=0 to Table1.RecordCount-1 do begin
       Table1.Edit;
       Table1.FieldByName('ID2').AsInteger:=x+1;
       Table1.Next;
   end;
   if Table1.Modified then
      Table1.Post;
   Table1.RecNo:=i;
   DataSource1.Enabled:=True;
Gulik вне форума Ответить с цитированием
Старый 05.05.2009, 18:45   #3
ShnapS
Пользователь
 
Регистрация: 15.05.2008
Сообщений: 44
По умолчанию

Спасибо, очень помог!
Возник еще один вопрос. Как мне добиться того чтоб по нажатию на кнопку "Удалить" удалялся только ВЫБРАННАЯ строка, а не как сейчас (удаляется ПОСЛЕДНЯЯ строка таблицы)?

-------------

Вот буквально только что увидел почему это происходит. На screen-shote видно что указатель стоит на той строке которая будет удалена по нажатию на кнопку. Возникает 2 вопроса:
1. Я так полагаю убрать указатель никак нельзя?
2. Как можно сделать так чтоб при нажатии на кнопку "Удалить" выводилось сообщение "Вы действительно хотите удалить строку #...?" ну и два варианта Да или Нет. ?
http://piccy.info/view/31802b648d637...e40061139251c/

Последний раз редактировалось ShnapS; 05.05.2009 в 19:05.
ShnapS вне форума Ответить с цитированием
Старый 06.05.2009, 10:50   #4
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

обработчик для кнопки "удалить"
Код:
if messagedlg('Вы действительно хотите удалить выделенную запись?',mtConfirm,[mbYes,mbNo],0)=1
then <удаление записи>
а для DBGrida на событие OnCellClick, напишите обработчик который бы запоминал ID, а потом при нажатиии на кнопку удалалась строка с этим ID.
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 06.05.2009, 11:32   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не знаю... Я бы просто создал вычисляемое поле, в которое писал бы RecNo текущей записи...
Зачем счетчики передергивать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.05.2009, 20:59   #6
ShnapS
Пользователь
 
Регистрация: 15.05.2008
Сообщений: 44
По умолчанию

Спасибо, Dark_Spirit ! Решил это таким образом:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
   i:integer;
begin
   i:=Table1.RecNo;
if Messagedlg('Вы действительно хотите удалить запись #'+IntToStr(i)+' ?', mtConfirmation,  [mbYes, mbNo], 0)=mrYes
then Table1.Delete;
end;
ShnapS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нумерация строк StartMis Общие вопросы Delphi 20 17.01.2011 15:00
Нумерация строк в DBGrid artemavd БД в Delphi 8 15.04.2009 20:31
Нумерация строк. QT 4 NikLik Qt и кроссплатформенное программирование С/С++ 2 18.12.2008 22:38
Нумерация строк в RaveReport D7_beginner БД в Delphi 0 21.12.2007 12:23
Нумерация строк в Memo Макс84 Компоненты Delphi 10 02.04.2007 17:10