Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с DBGrid

305
26 февраля 2004 года
Kashuk
385 / / 21.02.2003
У меня есть БД, из нейо я выборкой заталкиваю данные в DBGrid, и теперь мне надо при нажатие на строку DBGrid'а эти данные, той строки, на кторую я нажал, затолкать в Лейблы. Как это можно сделать?

Надеюсь я обьяснил доступно :{
2.0K
26 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by Kashuk
У меня есть БД, из нейо я выборкой заталкиваю данные в DBGrid, и теперь мне надо при нажатие на строку DBGrid'а эти данные, той строки, на кторую я нажал, затолкать в Лейблы. Как это можно сделать?

Надеюсь я обьяснил доступно :{



Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей

Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками

305
26 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Fazil6


Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей

Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками



Ты меня не так понял.
Мне надо, что б при нажатие на строку, она отображалась в лейблах, только эта строка

2.0K
26 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by Kashuk


Ты меня не так понял.
Мне надо, что б при нажатие на строку, она отображалась в лейблах, только эта строка



Ну тогда я совсем ничего не понял.
Что значит "что б при нажатие на строку"? Если ты имеешь в виду кликнуть мышкой на отдельной строке грида, то оба варианта будут прекрасно отрабатывать.
Не понятно чем именно тебя эти варианты не устраивают...

305
26 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Fazil6


Вариант 1.
напмсать обработчик AfterScroll для запроса. В нем присваивать лейблам значения полей

Вариант 2.
Просто использовать вместо TLabel компонент TDBText с соответствующими настройками



Как именно можно вытащить значение из ячейки, на какую я кликнул. Вот это я не могу.

2.0K
26 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by Kashuk


Как именно можно вытащить значение из ячейки, на какую я кликнул. Вот это я не могу.



Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида

void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.

305
26 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Fazil6


Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида

void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.



А случайно не надо указать DBGrid1->Column->Field->AsString
:-?

2.0K
26 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by Kashuk


А случайно не надо указать DBGrid1->Column->Field->AsString
:-?



Конечно НЕ надо.
Внимательно просмотри заголовок функции...
Column - указатель на поле по которому ты кликнул передается в функцию обработчика

305
26 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Fazil6


Конечно НЕ надо.
Внимательно просмотри заголовок функции...
Column - указатель на поле по которому ты кликнул передается в функцию обработчика



Извени не заметил.
Спасибо!:angel:

305
27 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Fazil6


Значение из кликнутой ячейки можно взять из обработчика OnCellClick для грида

void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
Label1->Caption=Column->Field->AsString;
}
В принципе все.



При таком способе вытаскиваются данные из первой ячейки столбика, а как можно вытащить данные из остальных столбиков?

2.0K
27 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by Kashuk


При таком способе вытаскиваются данные из первой ячейки столбика, а как можно вытащить данные из остальных столбиков?



при таком способе вытаскиваются данные из той ячейки, на которой ты кликнул, а не из первой. Если ты хочешь чтобы при этом вытаскивались значения и из остальных ячеек этой строки, ты должен проинициализировать все необходимые лейблы уже сам.

358
27 февраля 2004 года
moonmike
423 / / 18.10.2002
повесить на AfterScroll:
Label1->Caption = MyDataSet->FieldByName("Field1")->AsString;
Label2->Caption = MyDataSet->FieldByName("Field2")->AsString;
.....
348
27 февраля 2004 года
Saris
389 / / 14.03.2003
Label1->Caption = grid1->SelectedField->AsString;
305
27 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by Saris
Label1->Caption = grid1->SelectedField->AsString;



Прошу меня извенить за не полную информацию:
В опциях таблици стоит RowSelect = true.

Как поступить в таком случае?

348
27 февраля 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by Kashuk


Прошу меня извенить за не полную информацию:
В опциях таблици стоит RowSelect = true.

Как поступить в таком случае?


В событии OnMouseUp или OnMouseDown
Label1->Caption = dataset->Fields[grid.MouseCoord(X,Y)->X-1]->AsString;

305
27 февраля 2004 года
Kashuk
385 / / 21.02.2003
Цитата:
Originally posted by moonmike
повесить на AfterScroll:
Label1->Caption = MyDataSet->FieldByName("Field1")->AsString;
Label2->Caption = MyDataSet->FieldByName("Field2")->AsString;
.....



Спасибо, что то я очень позно заметил твой ответ.
Это какраз то, что мне надо!

Сенкс

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог