從獲取DBGrid行號想到的

2021-04-17 07:10:19 字數 751 閱讀 4942

獲取dbgrid

當前選中的行號和列號?

這是很多人經常需要實現的功能,但是tdbgrid

類並沒有提供類似col和row的屬性,所以不能直接獲得這些資訊。所以有很多朋友就開始從datasource來開始想辦法。但是我們靜下心來考慮,雖然tdbgrid

沒有提供col和row屬性,但是他的基類tcustomgrid卻是實現了row和col屬性。因此我們可以重新派生乙個叫做的tmgrid的類來輸出row和col屬性,並將dbgrid

的例項強制轉換成tmgrid ,既可準確快速的獲取這兩個屬性了,**如下:

type

tmgrid = class (tdbgrid);

…begin

…showmessage(inttostr(tmgird(dbgrid1).row));

showmessage(inttostr(tmgird(dbgrid1).rol));

…end;

從這個例子中我們不難得到這樣的啟示,當我們無法從當前使用的類直接獲取我們需要的資訊時,不要急於求成而繞彎路,我們可以去考察一下它的基類(基類的基類…,一直找上去),是否為我們提供了我們需要的資訊。如果有,我們可以簡單的從當前類來繼承乙個新的類(當然你也可以從它的基類直接繼承,例如上面的例子,tmgrids甚至可以從tcustomgrid類來繼承。但是為了安全起見,我建議直接從當前類來繼承),然後強制轉換當前物件為新的型別,這時我們就可以非常容易獲得我們需要的資訊。

獲取Dbgrid當前選中的行號和列號?(經典)

引自 這是很多人經常需要實現的功能,但是tdbgrid類並沒有提供類似col和row的屬性,所以不能直接獲得這些資訊。所以有很多朋友就開始從datasource來開始想辦法。但是我們靜下心來考慮,雖然tdbgrid沒有提供col和row屬性,但是他的基類tcustomgrid卻是實現了row和col...

DBGrid顯示行號的幾種方法

一 在structure檢視中,把dataset控制項的加號點開,在裡面的fields點右鍵add all fields,然後再右鍵new fields,這裡新增乙個資料表裡沒有的字段比如no,這個no欄位設定為integer,下面設定為calculated,確定,然後在這個no欄位的事件onget...

從圍棋想到的

我愛下圍棋,從高一學棋開始到現在已經快二十年了,也算是老棋迷了,還好現在有網路對弈可以隨時找到對手痛快淋漓殺它幾盤。發明圍棋的人真是了不起,乙個簡簡單單的棋盤可以演義出無數的變化,圍棋不僅在戰爭年代被將軍們作為一種戰略的模擬,對於我們it也有著很多的啟發意義 1 圍棋講究大局觀,有時放棄一些區域性利...