2009-11-30 5 views
2

Мне нужно получить значение выбранной ячейки DBGrid в Delphi.DBGrid получить выделенную ячейку

Я понятия не имею, как это сделать. Я попытался OnMouseMove DBGrid в

pt : TGridCoord; 
... 
pt:=dbGrid.MouseCoord(x, y); 

[Изменено] я могу использовать OnCellClick, чтобы получить значение ячейки с «Column.Field.AsString», но я хочу, чтобы получить значение из первого столбца, когда я нажимаю на любой столбец этой строки.

ответ

6

Обнаружил его.

dbGrid.Fields[0].AsString получает значение первого столбца выбранной строки.

1

A DBGrid не имеет фокуса, и поэтому вы не можете определить, какая строка была просеяна. Вместо этого посмотрите на связанный DataSet. A DataSet имеет активную строку.

1

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

3
procedure TForm1.DBGrid_DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); 
const defaultCheckBoxFieldNumber = 1; 
begin 
    if DBGrid.SelectedField.FieldNo = defaultCheckBoxFieldNumber then 
    ....; 
    else 
    ...; 
end; 

DBGrid.SelectedField.FieldNo получает выбранное поле на мероприятии DrawColumnCell в TDBGrid.

0

Я знаю, что это поздно и не уверен, что это означает название. Но если это означает, чтобы получить выбранное значение ячейки, то попробуйте следующее:

procedure Form1.dbGrid1CellClick(Column: TColumn); 
begin 
    ShowMessage(table1.Fields[Column.Index].AsString); 
end; 

Убедитесь, что
dbGrid1.Options.dbRowSelect: = False;

0

попробовать это, чтобы получить значение выбранной ячейки в DBGrid:

procedure Form1.dbGrid1CellClick(Column: TColumn); begin ShowMessage(table1.Fields[DBGrid1.SelectedIndex].AsString); end;