Работа с DBGrid
Надеюсь я обьяснил доступно :{
У меня есть БД, из нейо я выборкой заталкиваю данные в DBGrid, и теперь мне надо при нажатие на строку DBGrid'а эти данные, той строки, на кторую я нажал, затолкать в Лейблы. Как это можно сделать?
Надеюсь я обьяснил доступно :{
Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей
Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками
Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей
Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками
Ты меня не так понял.
Мне надо, что б при нажатие на строку, она отображалась в лейблах, только эта строка
Ты меня не так понял.
Мне надо, что б при нажатие на строку, она отображалась в лейблах, только эта строка
Ну тогда я совсем ничего не понял.
Что значит "что б при нажатие на строку"? Если ты имеешь в виду кликнуть мышкой на отдельной строке грида, то оба варианта будут прекрасно отрабатывать.
Не понятно чем именно тебя эти варианты не устраивают...
Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей
Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками
Как именно можно вытащить значение из ячейки, на какую я кликнул. Вот это я не могу.
Как именно можно вытащить значение из ячейки, на какую я кликнул. Вот это я не могу.
Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.
Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.
А случайно не надо указать DBGrid1->Column->Field->AsString
:-?
А случайно не надо указать DBGrid1->Column->Field->AsString
:-?
Конечно НЕ надо.
Внимательно просмотри заголовок функции...
Column - указатель на поле по которому ты кликнул передается в функцию обработчика
Конечно НЕ надо.
Внимательно просмотри заголовок функции...
Column - указатель на поле по которому ты кликнул передается в функцию обработчика
Извени не заметил.
Спасибо!:angel:
Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.
При таком способе вытаскиваются данные из первой ячейки столбика, а как можно вытащить данные из остальных столбиков?
При таком способе вытаскиваются данные из первой ячейки столбика, а как можно вытащить данные из остальных столбиков?
при таком способе вытаскиваются данные из той ячейки, на которой ты кликнул, а не из первой. Если ты хочешь чтобы при этом вытаскивались значения и из остальных ячеек этой строки, ты должен проинициализировать все необходимые лейблы уже сам.
Label1->Caption = MyDataSet->FieldByName("Field1")->AsString;
Label2->Caption = MyDataSet->FieldByName("Field2")->AsString;
.....
Label1->Caption = grid1->SelectedField->AsString;
Прошу меня извенить за не полную информацию:
В опциях таблици стоит RowSelect = true.
Как поступить в таком случае?
Прошу меня извенить за не полную информацию:
В опциях таблици стоит RowSelect = true.
Как поступить в таком случае?
В событии OnMouseUp или OnMouseDown
Label1->Caption = dataset->Fields[grid.MouseCoord(X,Y)->X-1]->AsString;
повесить на AfterScroll:
Label1->Caption = MyDataSet->FieldByName("Field1")->AsString;
Label2->Caption = MyDataSet->FieldByName("Field2")->AsString;
.....
Спасибо, что то я очень позно заметил твой ответ.
Это какраз то, что мне надо!
Сенкс