2016-08-15 243 views

回答

5

下面的代碼顯示瞭如何獲取鼠標指針結束的網格列的「標題」。

實際上,TDBGrid列的列標題中顯示的是Title對象的Caption屬性,該屬性也具有其他屬性。下面的代碼讀取並顯示TitleCaption屬性。

正如您從聯機幫助中看到的那樣,作爲網格列的TColumn對象也有FieldFieldName屬性,您可以根據需要閱讀這些屬性。

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: 
    Integer); 
var 
    Col, 
    Row : Integer; 
begin 
    Col := DBGrid1.MouseCoord(X, Y).X; 
    Row := DBGrid1.MouseCoord(X, Y).Y; 
    Caption := Format('Col: %d, Row:%d', [Col, Row]); 
    if (Col > 0) and (Col <= DBGrid1.Columns.Count) then 
    Caption := Caption + DBGrid1.Columns[Col - 1].Title.Caption; 
end; 
+0

這個伎倆。 感謝您的幫助。 – Ledzouz

1

要回答這個問題,你需要知道這裏是什麼

1:鼠標是哪個小區過(因此無論是在標題單元格)

2:字段名稱(標題)。

這兩個都是可能的,但不知道如何使用這些信息使標題名稱可見。

1:捕獲OnMouseMove事件並使用MouseCoord屬性。

2:使用結果列值(如果行值爲0)和Fields [ACol] .FieldName屬性。

但也許更直接的方法來實現你想要的是在選項中設置dgTitleHotTrack並設置一個hottrack樣式(可能必須是自定義樣式)。

+1

不知道這是如何回答這個問題。似乎更像是對我的冗長評論。 –