Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Из DBGrid нужно выбрать значение [D5, D6, WinME]


alexvan ©   (2002-07-06 15:59:00) 

Люди! Дайте HELP!Как организовать выбор из DBGrid? Нужно выбрать значение Поле n, Запись m AsString???


Vikol   (2002-07-08 12:01:00) [1]

У DBGrid есть свойство DBGrid.SelectedField которое указывает на поле в котором находится фокус ввода или выделение. Таким образом

Label1.Caption := DBGrid.SelectedField.AsString;

Кроме того у DBgrid есть свойство SelectedIndex которое указывает на номер выделеного столбца. Можно тогда сделать так

Label1.Caption
:= DBGrid.Columns[DBgrid.SelectedIndex].Field.asString;

Для того чтобы увидеть изменение данных нужно предусмотреть реакцию на событие компонента DataSource который связан с DBGrid.

DBgrid.DataSource.onDataChange := DataSource1DataChange;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Label1.Caption := DBGrid.SelectedField.AsString;
end;

Однако это событие генрирутся достаточно часто при любом изменении данных даже не связанных с переходами пользователя в DBGrid. Поэтому лучше использовать события DBGrid.onColEnter для обновления данных при горизонтальных движениях по DBGrid и
DBGrid.DataSource.DataSet.AfterScroll для обновления данных при переходе с одной записи на другую.


shjurik   (2002-07-08 10:42:00) [2]

Если речь идет о выборке делай так:
db1 - таблица
столбцы в ней
нумеруются от 0 до n
следовательно:
db1.fields[0].text - даст значение столбца


VAleksey   (2002-07-08 08:54:00) [3]

Ну знаешь ты в гриде строку и столбец и чего ? Это что означает что ты не знаешь строку и столбец в датасете что-ли ?
Делай как MBo. Только
var n:integer;
....
label1.caption:=Table1.Fields[n].AsString;
.....
А если знаешь строку (млин обхохотаться можно :)) )
var n,m { строка }:integer;
....
Table1.First;
Table1.MoveBy(m);
label1.caption:=Table1.Fields[n].AsString;
.....
PS
Но открою тебе секрет. Строка и столбец который сфокусирован в гриде - это та самая строка и столбец в датасете, которые тебе нужны. Иначе надо использовать поиск в ДАТАСЕТЕ . :))


wicked   (2002-07-06 19:31:00) [4]

2 alexvan ©
не будет так... TDBGrid сонаследники предназначен только для отображения данных... если тебе хочется еще и читать значение столбца/строки - разгребай принципы действия TCustomDBGrid и пиши своего наследника...


MBo   (2002-07-06 16:11:00) [5]

>Я знаю строку и столбец
Откуда знаешь?


alexvan   (2002-07-06 16:06:00) [6]

Ты меня не понял, хотя наверное так написал. Я не знаю имени!!!
Мне нужно его получить! Я знаю строку и столбец


MBo   (2002-07-06 16:02:00) [7]

label1.caption:=Table1.FieldByName["qqq"].AsString;


Наверх

Титульная страница Поиск, карта сайта Написать письмо