我想实现这样的效果,用鼠标单击dbgrid一行,选择一条,颜色变为篮色,在选择一条这条变为篮色,上面选的也还是篮色...
解决方案 »
- 带单引号的数据的保存问题
- 查询下载问题~急~
- QQ中按组分类后,可以显示该组的联机用户数和该组中的总数。我用treeview也写了个,得如何来统计呢?
- 一流品牌,专业服务 翻译成英语怎么说
- 请问Directory dialog box 在什么那个工具栏上可以找到,
- 讨论一下数据库结构建立问题。
- 这段程序为什么会出错?
- 基于INTERNET的用什么联接更好点?
- 如何读取ACCESS2000数据库内的位图?
- 请问怎样用程序调用google搜索关键字,并把找到的网址返回给程序?
- 【C转delphi】请帮忙转一个代码片段
- 某外部程序,其编辑菜单中粘贴一项是灰色的,我做过复制操作后,用发送WM_COMMAND给该菜单项却并不能成功,感觉是外部程序的菜单没有更新.
这时dbgrid上应该有2条是蓝色的
然后在DrawColumnCell事件里做个循环读取数组画蓝色就行了
我需要在dbgrid里面实现
可以贴出相关代码么?
谢谢...
//....var
Form1: TForm1;
RowSel: Array of String;//....procedure TForm1.FormCreate(Sender: TObject);
begin
setlength(RowSel,0);
end;procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
SetLength(RowSel,length(RowSel)+1);
RowSel[high(RowSel)]:= ADOQuery1.FieldByName('表里唯一的列').AsString; //即值不会重复
end;procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
i: integer;
begin
for i:= Low(RowSel) to High(RowSel) do
if ADOQ.Fields[0].AsString = RowSel[i] then
DBGrid1.Canvas.Font.Color:= clBlue;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;//....