假设用一个DBctrlgrid连接到一个数据集上,在它的上面放置一个DBEDIT控件,和数据集某个字段连接,大家知道程序运行起来,DBctrlGRID控件将在上面根据记录的多少动态创建DBEIDT,将数据依次排列其中,但是我想根据记录的值作为判断条件,指定某个DBEDIT中的字体颜色,就是因为它是动态创建的,所以我也不知道让程序如何找到对应的DBEDIT,我在属性中设置颜色,全都变了,我就是要找到某个动态创建的DBEDIT,然后单独它的字体赋上颜色,怎么办?我折腾了半天,还不行。这几天没有哪个人的回答能够解决问题,郁闷,难道我的运气不好,高手没看到我的帖子?
解决方案 »
- BusinessSkin 控件 控件 bsSkinSpeedButton 控件加一个位图后 在设计前,设置好高度以后,怎么运行了以后总是控件的默认高度。。。郁闷。
- PB调用DELPHI的DLL之间传值的问题,大家来看看
- 厚着脸皮来问这个问题,高手请进
- 请问我创建的监视文件拖动的控件的属性怎么显示不出来?
- 关于算法问题
- 设计一个小型的网页搜索引擎
- 又一个超级难题:怎样把已有的软件放在自己的程序中,当自己的程序在进程窗口隐藏时它也看不出来?
- 谁知道用什么可以打开.wdl、.pdg格式的文件!!!!!!!!!!
- 用SQL进行多表查询的问题!
- 用ado中能不能使用数据库决策系统
- 求在DELPHI中删除非空文件夹的思路及源码?!
- 为何SqlServer不能标示''?????
then
....
不就可以了
應變不象你說的, 有几個記錄, 就創建多少個 在它上面的DbEdit!只是創建你設置的多少行而已!!!所以, 你要轉個思路!在dataSet的 afterscroll 之類的事件中判斷, 處理
这是一个奇偶行设置颜色的代码。你把条件换成你的条件。就行了。好吧。我没有什么时间帮你就只能这样。有空与我联系。搞不定时再帮你。呵呵。我不要你的分
with dbgrid1 do
begin
if ((state=[gdselected]) or (state=[gdselected,gdfocused])) then
begin
canvas.Font.Color:=clyellow;
canvas.Brush.Color:=clnavy;
end
else
begin
if datasource1.DataSet.RecNo mod 2<>0 then
canvas.Brush.Color:=clwhite
else
canvas.Brush.Color:=$00eaeaea;
end;
defaultdrawcolumncell(rect,datacol,column,state);
end;
最好是改DBctrlGRID中,每一格的背景色,DBctrlGRID里面可以使用DBctrlGRID的Canvas特性
只是不能直接用
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
begin if DBCtrlGrid.DataSource.DataSet.FieldByName('stor_id').AsInteger>7067 then
begin
DBCtrlGrid.Canvas.Brush.Color:=clPurple;
DBCtrlGrid.Canvas.Rectangle(DBCtrlGrid.Canvas.ClipRect)
end
else
begin
DBCtrlGrid.Canvas.Brush.Color:=clred;
DBCtrlGrid.Canvas.Rectangle(DBCtrlGrid.Canvas.ClipRect)
end;end;
begin
if DBEdit1.DataSource.DataSet.FieldByName('custno').AsInteger=1231 //换成你的判断条件
then
DBEdit1.Font.Color:=clRed else DBEdit1.Font.Color:=clblue;
end;procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
Index: Integer);
begin
if DBCtrlGrid.DataSource.DataSet.FieldByName('custno').AsInteger=1231 //换成你的判断条件
then
DBEdit1.Font.Color:=clRed else DBEdit1.Font.Color:=clblue;
end;看看上面得代码吧,终于有人启发我了,不过也谢谢你们,分还是要散的