DBGrid顯示行號的幾種方法

2021-06-16 18:47:02 字數 1069 閱讀 2207

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

int r=sender->dataset->recno;

text=(r==-1)?string(""):string(r);

若使用的是動態連線,就先設定為靜態連線,然後add all fields,不然會出現「無效的授權說明」,新增好所有欄位後再去掉連線字串,恢復動態連線就行了。另外在程式中別忘了呼叫createdataset();否則程式執行中,操作dataset的時候會報異常:cannot perform this operation on a closed dataset。

二、在dbgrid的ondrawcolumncell事件中繪製編號,現在dbgrid控制項中建立表頭為「序號」或者「no」的列,然後繪製此列的值,以tdbgrideh控制項為例:

void __fastcall tmainform::dbgrid1drawcolumncell(tobject* sender,

const trect& rect, int datacol, tcolumneh* column,

gridseh::tgriddrawstate state)

else

nindex = dbgrd->datasource->dataset->recno;

string strindex = inttostr(nindex);

int txtwid = dbgrd->canvas->textwidth(strindex);

int left = roundto((rect.width() - txtwid) / 2.0, 0);

left += rect.left;

if (-1 != nindex) // 如果有記錄}

} 三、如果是tdbgrideh控制項,則在對應的optionseh屬性域中設定dghshowrecno,這樣可以在控制項最左邊的指示列上顯示序號。

div固定顯示的幾種方法

很多時候我們會受到一些需求 1 div一直置頂 2 div一直置底 3 超過一定的位置之後div置頂 4 超過一定位置之後div置底 那麼下面針對上面的幾個問題寫幾個案例 一 div一直在螢幕的上方,這個倒是容易咱們直接使用position fixed 然後設定他的top值和left就可以了,別忘了...

從獲取DBGrid行號想到的

獲取dbgrid 當前選中的行號和列號?這是很多人經常需要實現的功能,但是tdbgrid 類並沒有提供類似col和row的屬性,所以不能直接獲得這些資訊。所以有很多朋友就開始從datasource來開始想辦法。但是我們靜下心來考慮,雖然tdbgrid 沒有提供col和row屬性,但是他的基類tcus...

SQL Server 顯示行號的方法

以前都不習慣於總結,今天為了找乙個簡單很的方法找了半天才找到了.今天先把它記錄下.1 利用identity屬性和臨時表實現 select a.identity int,1,1 as number into a from a log a order by optime select from a 2 ...