請問,怎麼在dbgrid中改變cell內容 delphi / windows sdk/api
我寫了以下**:但是還是顯示數字
procedure tmaketicket.dbgrideh3drawcolumncell(sender: tobject;
const rect: trect; datacol: integer; column: tcolumneh;
state: tgriddrawstate);
begin
inherited;
with dbgrideh3.canvas do
case adoquery2.fieldbyname('status').asinteger of
1:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('處理')) div 2,'處理');
2:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('未處理')) div 2,'未處理');
end;
dbgrideh3.defaultdrawcolumncell(rect, datacol, column, state); }
去掉inherited試試
procedure tmaketicket.dbgrideh3drawcolumncell(sender: tobject;
const rect: trect; datacol: integer; column: tcolumneh;
state: tgriddrawstate);
begin
inherited;
if column.fieldname = 'status' then
begin
with dbgrideh3.canvas do
begin
fillrect(rect);
case adoquery2.fieldbyname('status').asinteger of
1:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('處理')) div 2,'處理');
2:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('未處理')) div 2,'未處理');
end;
end else
dbgrideh3.defaultdrawcolumncell(rect, datacol, column, state);
1:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('處理')) div 2,'處理');
2:textrect(rect,rect.left,((rect.bottom-rect.top)-textheight('未處理')) div 2,'未處理');
**********==可以簡潔點
1:textoout(rect.left, rect.top+2,'處理');
2:textoout(rect.left, rect.top+2,'未處理');
1:textoout(rect.left+2, rect.top+2,'處理');
2:textoout(rect.left+2, rect.top+2,'未處理');
在DBGrid中實現多選功能。
1 首先把dbgrid options dgmulitselect設為true.dgrowselect也設為true,此屬性設為true後,dbgrid將不能編輯,如何實現能否編輯 如下 要先引用 uses dbgrids單元 procedure tfrmxjcghd.checkbox1click ...
在Delphi中如何動態更改DBGrid的顏色
dbgrid控制項是乙個有許多使用者介面的顯示資料庫的控制項,以下的程式告訴您如何根據顯示的內容改變字型的顯示顏色。例如,如果乙個城市的人口大於200萬,我們就讓它顯示為藍色。使用的控制項事件為dbgrid.ondrawcolumecell.procedure tform1.dbgrid1drawc...
在Delphi的DBGrid中插入其他可視元件
delphi提供了功能強大的 dbgrid元件,以方便進行資料庫應用程式設計。但是如果我們僅僅利用dbgrid元件,每乙個獲得焦點 grid 只是乙個簡單的文字編輯框,不方便使用者輸入資料。delphi也提供了一些其他資料元件來方便使用者輸入,比如dbcombobox,dbcheckbox等元件,但...