Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 464

/ вопрос решён /

Здравствуйте уважаемые эксперты!
Подскажите, как реализовать вывод информации из полей DBGrid при перемещении по строкам в соответствующий Label ?
Al_Sha

Al_Sha Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Al_Sha (статус: Посетитель)
Вопрос отправлен: 30 июня 2011, 11:11
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Al_Sha!
Нужно не с DBGrid брать данные. Ваш DBGrid должен быть связанным с каким-либо DataSource (иначе Вы бы такой вопрос не задавали).
Поэтому, ставим на форму DBLabel (не обычный Label, а специальный), в свойствах DataSource привязываем нужный DataSource, и в свойстве Field выбираем поле для отображения. И все. Все будет работать как нужно.
Но если хочется именно в Label (мало чего), тогда данные лучше читать напрямую с Table/Query.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 30 июня 2011, 11:16

Ответ #2. Отвечает эксперт: ArtGal

Здравствуйте, Al_Sha!

Напиши обработчик
DBGrig.DataSource.DataSet.AfterScroll(DataSet)

Типа такого

procedure TForm1.ADOQueryAfterScroll(DataSet: TDataSet);
begin
Label.Caption := ADOQuery.FieldByName('Тра-та-та').AsString;
end;

Ответ отправил: ArtGal (статус: 1-ый класс)
Время отправки: 30 июня 2011, 15:47


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 5 июля 2011, 20:03; участников в обсуждении: 3.
Al_Sha

Al_Sha (статус: Посетитель), 30 июня 2011, 11:26 [#1]:

Спасибо за ответ, но...
У меня данные в DBGrid попадают через ADOQuery,могу вывести в Label через CellClick при нажатии мышью на каждой строке DBGrid, выводится нормально, но хотелось бы выводить динамически через скроллинг, т.е. при прокрутке DBGrid данные из полей выводились в Label/
С уваженнием
Al_Sha
Вадим К

Вадим К (статус: Академик), 30 июня 2011, 11:52 [#2]:

DBGrid привязан напрямую к ADOQuery? без промежуточного DataSource?
Галочка "подтверждения прочтения" - вселенское зло.
Al_Sha

Al_Sha (статус: Посетитель), 30 июня 2011, 12:12 [#3]:

Нет, конечно...
Через DataSource
Вадим К

Вадим К (статус: Академик), 30 июня 2011, 12:14 [#4]:

А так, как Label нужен только для отображения, ставим на форму его наследника - DBLabel (это вроде вкладка DBControl). А потом привязываем к нужному DataSource.
Галочка "подтверждения прочтения" - вселенское зло.
Al_Sha

Al_Sha (статус: Посетитель), 30 июня 2011, 12:17 [#5]:

Ну хорошо...
Будем дальше разбираться.
Спасибо
Al_Sha
Вадим К

Вадим К (статус: Академик), 30 июня 2011, 12:23 [#6]:

Так вопрос решился? или как?
Галочка "подтверждения прочтения" - вселенское зло.
ArtGal

ArtGal (статус: 1-ый класс), 30 июня 2011, 15:51 [#7]:

DBGrig.DataSource.DataSet.AfterScroll(DataSet)

procedure TForm1.ADOQueryAfterScroll(DataSet: TDataSet);
begin
Label.Caption := DBGrig.DataSource.DataSet.FieldByName
('Тра-та-та').AsString;
end;
// Странно здесь сообщения форматируются.
Вадим К

Вадим К (статус: Академик), 2 июля 2011, 19:29 [#8]:

И все равно данные берутся с DataSource:)
Галочка "подтверждения прочтения" - вселенское зло.
Al_Sha

Al_Sha (статус: Посетитель), 5 июля 2011, 20:01 [#9]:

Вопрос решился
sLabel1.Caption := adoQuery1.fields[0].asstring;
Спасибо всем.
С уважением
Al_Sha
Al_Sha

Al_Sha (статус: Посетитель), 5 июля 2011, 20:03 [#10]:

Sorry...
Именно в этой процедуре
Спасибо ArtGal
procedure TForm1.ADOQueryAfterScroll(DataSet: TDataSet);

5 июля 2011, 20:06: Статус вопроса изменён на решённый (изменил автор вопроса — Al_Sha)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.03 сек.