在delphi中的datagrid怎樣使它顯示的行間隔改變顏色

2022-03-28 14:35:50 字數 2860 閱讀 4374

1樓:匿名使用者

在 delphi 的內建元件裡,並沒有 datagrid 元件。

以下提供的是 dbgrid 元件,隔行變色顯示的**:

procedure tform1.dbgrid1drawdatacell(sender: tobject; const rect: trect;

field: tfield; state: tgriddrawstate);

begin

if dbgrid1.datasource.dataset.recno mod 2 = 1 then

begin

dbgrid1.canvas.brush.color := clblue;

dbgrid1.canvas.font.color := clyellow;

end;

dbgrid1.defaultdrawdatacell(rect,field,state);

end;

效果演示:

2樓:囚籠山人六

delphi中dbgrid行列顏色設定

1. 縱向斑馬線效果:實現網格的奇數列和偶數列分別以不同的顏色顯示,以區別相鄰的資料列。 file://在dbgrid的drawcolumncell事件中編寫如下**:

4.行突顯的斑馬線效果:既突出當前行,又區分不同的列(欄位)。 file://其它屬性設定同3,將上述**修改為:

if ((state = [gdselected]) or (state=[gdselected,gdfocused])) then begin

case datacol mod 2 = 0 of

true : dbgrid1.canvas.

brush.color:=clred; file:

//當前選中行的偶數列顯示紅色 false: dbgrid1.canvas.

brush.color:=clblue; file:

//當前選中行的奇數列顯示藍色 end;

dbgrid1.canvas.pen.mode:=pmmask;

dbgrid1.defaultdrawcolumncell (rect, datacol, column, state);

1/14頁

end;

關於delphi dbgrid想要某一行改變顏色問題!

3樓:匿名使用者

少了一句:

if adoquery5.fieldbyname('職位型別').asstring ='經理' then//先寫一個值先

begin

dbgrid5.canvas.brush.color :=clblue;

dbgrid5.defaultdrawcolumncell(rect, datacol, column, state);

end;

4樓:匿名使用者

看看你的if是不是執行了

easyui的datagrid,怎麼動態改變某一行的背景顏色 10

5樓:匿名使用者

$('#tt').datagrid(

}});

delphi 更改stringgrid單元格所在行的字型顏色

6樓:至少讓我看一眼

由於tstringgrid沒有並沒有提供類似的方法.所以只能自己畫了.

以下** 是假定 有一個名稱為 form2 的窗體 上面放著 一個名稱為 sgrid的tstringgrid:

以下**實現了這個stringgrid的ondrawcell事件

procedure tform2.sgriddrawcell(sender: tobject; acol, arow: integer;

rect: trect; state: tgriddrawstate);

varthegrid: tstringgrid; celltext: string;

begin

if not (arow = 1) then exit; //如果不滿足條件,條件由你自行確定

thegrid := sender as tstringgrid; //強制型別轉換sender,可以讓多個stringgrid來使用這個函式

with thegrid.canvas do

begin

//如果單元格被中了則繪製高亮否則,則繪製指定的顏色

if gdselected in state then

begin

brush.color := clhighlight; font.color := clhighlighttext;

endelse

begin

brush.color := clwindow; font.color := clred; //這裡是你需要設定的顏色,暫時這隻為紅色

end;

if gdfixed in state then

begin

brush.color := clbtnface;

end;

fillrect(rect); //代替原始內容,並繪製背景

celltext := thegrid.rows[arow][acol]; //獲取單元格文字

inc(rect.left,2); //讓文字區域左縮排2畫素

//利用windows api函式繪製文字

drawtext(handle,pchar(celltext),length(celltext),rect,

dt_left or dt_singleline or dt_vcenter or dt_end_ellipsis);

end;

end;

在delphi中單擊dbgrid某條資料怎麼讓另外dbgrid裡的資料發生變化

你的問題似乎是主 子表問題。有兩種方法 方法一 利用delphi的 form嚮導 生成主 子表窗體。這種方法比較死板但效率高。方法二 自己程式設計通過過濾的方式實現主 子表相同的效果。可靈活控制,但效率低些,使用於資料量不大的情況。以下是雙擊的例程,和你要求的單擊功能相似。table1是主表,tab...

在delphi中怎麼設定介面的背景

delphi設定介面背景有兩種情況,一是在設計期間修改背景,二是在執行期間修改。對於設計期的修改方法如下 1.選擇待處理的form 2.在屬性編輯中,找到color屬性 3.使用下拉選擇待設定的顏色 4.逐一設定視窗上所有的控制元件,將其控制元件的transparent屬性修改為true,以使得字型...

delphi中想設定CTRL ENTER快捷鍵

unit unit1 inte ce uses windows,messages,sysutils,variants,classes,graphics,controls,forms,dialogs type tform1 class tform procedure formcreate sender...