C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Перемещение по таблице, Вопрос.
sim
Отправлено: 08.03.2004, 23:17


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Компонент Table1, TBGrid1.
Первая колонка в таблице называется FileName.
Необходимо считывать строчки из таблицы друг за другом.
Метод First, Next, Last, не подходит.
А возможно считывать по номеру строки?
Что-то вроде i=0,1,2,3,4..... где i это номер строка.
Как это можно сделать?
Спасибо.
olegenty
Отправлено: 09.03.2004, 07:51


Ветеран

Группа: Модератор
Сообщений: 2412



Инкрементный поиск тебе нужен, похоже.
xTrim
Отправлено: 09.03.2004, 08:09


Машинист паровоза

Группа: Участник
Сообщений: 208



Может подойдет Table1->MoveBy(i) ?
sim
Отправлено: 09.03.2004, 09:28


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Инкриментный поиск а как это.?
А возможно DBGrid сделать не активным. Ну как Edit когда его делаешь не активным он становится серым.
Вопрос в том что если пользоваться Last() Next() я боюсь что пользователь щелкнит куда-нибуть по таблице и следующий Next() что нибуть пропустит. В смысле какую нибуть строчку. А как этого не допустить.
xTrim
Отправлено: 09.03.2004, 09:36


Машинист паровоза

Группа: Участник
Сообщений: 208



хм.. DBGrid->Enabled = false ?
sim
Отправлено: 09.03.2004, 20:52


Дежурный стрелочник

Группа: Участник
Сообщений: 39



Буду пробовать спасибо.
olegenty
Отправлено: 10.03.2004, 08:25


Ветеран

Группа: Модератор
Сообщений: 2412



А про инкрементный поиск читай справку EhLib. (Это такой грид продвинутый, для русских совершенно бесплатный, брать вот тут: )http://www.ehlib.com/RUS/ehlibrus.exe
sim
Отправлено: 11.03.2004, 22:17


Дежурный стрелочник

Группа: Участник
Сообщений: 39



А для чего надо открывать таблицу?
Table1->Open();
Если даже без этой строки очень даже не плохо работает:
Table1->First();
или
Table1->Next();
Admin
Отправлено: 17.03.2004, 14:31


Владимир

Группа: Администратор
Сообщений: 1190



biggrin.gif Шутить изволите ?
Значит таблица уже открыта (в инспекторе объектов) стоит:
Table1->Active = true;
sim
Отправлено: 18.03.2004, 09:51


Дежурный стрелочник

Группа: Участник
Сообщений: 39



А как так? В библии (Архангельский) рекомендуется
Table1->Open()

Table1->Post()

Table1->Close()

а на самом деле достаточно Table1->Active = true; или false и все будет коректно работать?
Valdemar
Отправлено: 18.03.2004, 13:46


Мастер участка

Группа: Участник
Сообщений: 433



Метод Table1->Open() устанавливает свойство Active = true, поэтому Table1->Open() и Table1->Active = true одно и тоже.
Аналогично Table1->Close() и Table1->Active =false, только они закрывают таблицу.

Вернуться в Работа с базами данных в C++Builder