我现在有个dbgrid存储记录,状态分两种情况:停用和启用,我想停用的记录标识状态停用两个字用红色表示,启用用绿色表示。请各位大侠指点。我马上结贴。我给40分。
解决方案 »
- c++语句转delphi~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 取得系统temp目录后的错误?
- WebBrowser 怎样去掉ScrollBars ?
- StringGrid打印问题?
- 如何作出象QQ一样可以自动隐藏鼠标滑入立即弹出显示
- 再问一次,哪位高手对 RichEdit 控件很熟?
- 100分求助怎么安装Formula One 6到Delphi6!(来者有分)
- 请问如何该执行系统菜单里指定的菜单?
- delphi2009 help 只能安装在c盘?
- 请问各位高手,在Delphi中如何实现进行从局域网的地址到Internet地址的转换 谢谢
- 在delphi中怎么编写一个解析器,回者必酬,
- 请教如何利用Timgscan和TImgEdit将扫描仪中的图片以文件的形式保存下来?(在线等待,希望有代码)
有个问题是在Delphi中使用DBGrid时,如何让DBGrid中每一行颜色按照用户自己的意愿控制。最初看到这个问题时,我们以为非常非常简单,所以马上动手准备解决它。结果却发现不是那么回事,传统方法根本不能发挥作用。在电脑面前一直坐到凌晨4点,不断地调试,幸运地是凭借平时积累的一点编程经验,终于找到了开门的匙钥。现将它充公,供大家享用。 1、 数据表的建立 2、程序设置;
procedure Tinfo.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if query1.FieldByName(’all’).asstring>40’ then
begin
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end
else
begin
dbgrid1.Canvas.Font.Color:=clblue;
dbgrid1.Canvas.Brush.color:=clyellow;
end; dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if field.AsString ='停用' then
SetTextColor((dbgrid1.canvas.handle,clred)
else
SetTextColor((dbgrid1.canvas.handle,clgreen) dbgrid1.Canvas.TextRect(rect,0,0,field.AsString);
dbgrid1.Canvas.Textout(rect.Left,rect.Top,field.AsString);
end;
[Error] UF_Department_main.pas(278): ';' expected but 'ELSE' found
[Error] UF_Department_main.pas(280): Undeclared identifier: 'DBGDepartment'
[Error] UF_Department_main.pas(280): ')' expected but identifier 'canvas' found
[Error] UF_Department_main.pas(280): 'END' expected but ',' found
[Error] UF_Department_main.pas(281): '.' expected but ';' found
[Error] UF_Department_main.pas(287): Identifier redeclared: 'Finalization'
[Error] UF_Department_main.pas(288): Undeclared identifier: 'sender'
[Error] UF_Department_main.pas(288): Operator not applicable to this operand type
[Error] UF_Department_main.pas(288): Missing operator or semicolon
[Error] UF_Department_main.pas(290): Operator not applicable to this operand type
[Error] UF_Department_main.pas(290): Object or class type required
firetoucher(风焱) 的方法可行,但是报以下的错误,怎么办
[Warning] UF_Department_main.pas(293): Text after final 'END.' - ignored by compiler
[Error] UF_Department_main.pas(39): Unsatisfied forward or external declaration: 'TFrm_Department_main.ActExeclExecute'
[Hint] UF_Department_main.pas(41): Private symbol 'cs' declared but never used
[Hint] UF_Department_main.pas(42): Private symbol 'dbgirdcs' declared but never used
[Fatal Error] NSB.dpr(156): Could not compile used unit 'base\UF_Department_main.pas'
begin
SetTextColor((DBGDepartment.canvas.Handle):=clred;
end
else
begin
SetTextColor((DBGDepartment.canvas.handle,clgreen);
end;
DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
我是这样写的语句报上面的错误
else SetTextColor(DBGDepartment.canvas.handle,clgreen);
end;
DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
我改正了一点错误,但是为什么报错误如下
[Error] UF_Department_main.pas(294): '.' expected but ';' found
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Table1.FieldByName('狀態').Asstring = '停用' then
DBGrid1.Canvas.Font.Color := clBlue;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
[Error] UF_Department_main.pas(292): 'END' expected but ')' found
这是改正候报的错 DBGDepartment.Canvas.TextRect(rect,0,0,field.AsString);
DBGDepartment.Canvas.Textout(rect.Left,rect.Top,field.AsString);
在次处报 的错,我现在急需解决,请各位大侠快快帮我解决
试试行吗?