2009-11-30 147 views
2

我需要在Delphi中獲取DBGrid的選定單元格的值。DBGrid獲取選定的單元格

我不知道該怎麼做。我試圖DBGRID的的OnMouseMove

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

[編輯] 我可以使用OnCellClick獲得與「Column.Field.AsString」單元格的值,但我想從第一列中的值,當我點擊在該行的任何列上。

回答

6

找到它。

dbGrid.Fields[0].AsString獲取所選行的第一列的值。

1

A DBGrid沒有焦點,因此你不能找出哪一行被選擇。請看鏈接的DataSet。 A DataSet有一個活動行。

1

我認爲最簡單的方法是連接一個隱藏數據庫文本資料集,然後設置數據庫文本,以顯示你需要的領域,這種方式,數據庫文本總是包含當前記錄的所需值

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.FieldNoTDBGrid的事件DrawColumnCell中獲取選定字段。

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;

相關問題