Вопрос по базам данных
Нет, нужные опции я выставил. Я не знаю как из программы сделать какую-нибудь строчку выделенной.
DBGrid - компонент отображающий состояние набора данных. Потому выделить строчку в DBGrid'e не получится принципиально. Чтобы строчка в DBGrid'e выглядела выделенной(активной) надо перевыести курсор DataSet'а на эту строку.
Смотри:
TDataSet::Next();
TDataSet::First();
TDataSet::Previos();
и далее.
Нет, нужные опции я выставил. Я не знаю как из программы сделать какую-нибудь строчку выделенной.
Ну если надо выделить строку, то придётся работать рисованием через канву.
DBGrid - компонент отображающий состояние набора данных. Потому выделить строчку в DBGrid'e не получится принципиально. Чтобы строчка в DBGrid'e выглядела выделенной(активной) надо перевыести курсор DataSet'а на эту строку.
Смотри:
TDataSet::Next();
TDataSet::First();
TDataSet::Previos();
и далее.
TDataSet::Next(),TDataSet::First() и т.д. действительно позиционируют курсор в самой базе, однако DBGrid не считает данную строку (строку на которой в данный момент установлен маркер) выделенной (т.е. DBGrid->SelectedRows->Count равен нулю и массив ссылок на выделенные строки в DBGrid при этом пустой).
TDataSet::Next(),TDataSet::First() и т.д. действительно позиционируют курсор в самой базе, однако DBGrid не считает данную строку (строку на которой в данный момент установлен маркер) выделенной (т.е. DBGrid->SelectedRows->Count равен нулю и массив ссылок на выделенные строки в DBGrid при этом пустой).
А если попробовать так:
dbgMyDBGrid->DataSource->DataSet->Next();
dbgMyDBGrid->SelectedRows->CurrentRowSelected = true;
ShowMessage(IntToStr(dbgMyDBGrid->SelectedRows->Count));
А если попробовать так:
dbgMyDBGrid->DataSource->DataSet->Next();
dbgMyDBGrid->SelectedRows->CurrentRowSelected = true;
ShowMessage(IntToStr(dbgMyDBGrid->SelectedRows->Count));
Не пройдет. Объект то один и тот-же, через какие стрелки бы ты на него не ссылался. Попробуй ->locate(...)
Не пройдет. Объект то один и тот-же, через какие стрелки бы ты на него не ссылался. Попробуй ->locate(...)
Вот эта строка:
dbgMyDBGrid->SelectedRows->CurrentRowSelected = true;
добавляет активную строку Датасета в массив SelectedRows грида.
Вот эта строка:
dbgMyDBGrid->SelectedRows->CurrentRowSelected = true;
добавляет активную строку Датасета в массив SelectedRows грида. [/QUOT
E]
Огромное спасибо.