我需要在Delphi中獲取DBGrid的選定單元格的值。DBGrid獲取選定的單元格
我不知道該怎麼做。我試圖DBGRID的的OnMouseMove
pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);
[編輯] 我可以使用OnCellClick獲得與「Column.Field.AsString」單元格的值,但我想從第一列中的值,當我點擊在該行的任何列上。
我需要在Delphi中獲取DBGrid的選定單元格的值。DBGrid獲取選定的單元格
我不知道該怎麼做。我試圖DBGRID的的OnMouseMove
pt : TGridCoord;
...
pt:=dbGrid.MouseCoord(x, y);
[編輯] 我可以使用OnCellClick獲得與「Column.Field.AsString」單元格的值,但我想從第一列中的值,當我點擊在該行的任何列上。
找到它。
dbGrid.Fields[0].AsString
獲取所選行的第一列的值。
A DBGrid
沒有焦點,因此你不能找出哪一行被選擇。請看鏈接的DataSet
。 A DataSet
有一個活動行。
我認爲最簡單的方法是連接一個隱藏數據庫文本資料集,然後設置數據庫文本,以顯示你需要的領域,這種方式,數據庫文本總是包含當前記錄的所需值
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
在TDBGrid
的事件DrawColumnCell
中獲取選定字段。
我知道這是遲到,不知道標題是什麼意思。 但如果這意味着獲取所選單元格的值,那麼試試這個:
procedure Form1.dbGrid1CellClick(Column: TColumn);
begin
ShowMessage(table1.Fields[Column.Index].AsString);
end;
確保
dbGrid1.Options.dbRowSelect:= FALSE;
試試這個讓DBGrid的中選定單元格的值:
procedure Form1.dbGrid1CellClick(Column: TColumn); begin ShowMessage(table1.Fields[DBGrid1.SelectedIndex].AsString); end;