网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
当前位置:Delphi园地技巧文章控件使用 → 锁定DBGrid左边的列
锁定DBGrid左边的列
日期:2004年10月29日 作者: 人气: 查看:[大字体 中字体 小字体]

   我在使用 Delphi3 进行数据库编程的时候,希望 DBGRID 构件在显示数据的时候能象FoxPro 的 BROWSE 命令一样,锁定左边指定的几列不进行滚动,请问应用什么方法来实现?

    我们知道 Delphi 的 TStringGrid 有一个属性 FixedCols 来指定不滚动的列。虽然TDBGrid 不能直接使用这一属性,但通过强制类型转换也可以首先这一功能,因为这两个类都来自 TCustomGrid 类。下面我们以 Delphi 3.0的 Demos\Db\CtrlGrid 为例来说明具体的用法。在这个例子的 TFmCtrlGrid.FormShow 过程中加入如下一行:

    TStringGrid(DbGrid1).FixedCols := 2;

    运行该程序,在左右移动各列时,Symbol 列不会移动。除了这种方法,也可以采用下面的方法:首先在 Form 声明部分加上

    type TMyGrid = Class(TDBGrid) end;

    然后在 TFmCtrlGrid.FormShow 过程中加入:

    TMyGrid(DbGrid1).FixedCols := 2;

    两者从形式上略有不同,但实质都是一样的。我们这里设置 FixedCols 为 2,这是因为在 DBGrid 构件最左侧有个指示列,如果你将 DBGrid 的 Options 属性的 dgIndicator 设为False,则应设置 FixedCols 为1。  

 
 2003-11-11 17:21:36    使dbgrid的某几笔资料变色

   你可在 DBGrid 元件的 DrawDataCell 事件中依资料的条件性来改变格子或文字的颜色.
如 :

OnDrawDataCell(...)
begin
  with TDBGrid(Sender) do
  begin
    if (条件) then
      Canvas.TextOut(Rect.Left + 4
    Rect.Top + 2

'要显示的文字如表格的资料');
end;

    而你会看到 DBGrid 的显示资料怎麽有重叠的情况那是因为原本DBGrid要显示的资料与 TextOut 所显示的资料重叠
    解决方法 :
    在 Query 元件所加入的栏位(在元件上按右键会有 Add Fields...的选单)在不要显示资料的栏位的 OnGetText 事件中有一参数设定为 False;

procedure TForm1.Query1Detail1GetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
  // 决定在 DBGrid 得知表格资料时要不要显示所得到的资料False -> 不显示
  // 就可避免与 TextOut 的文字重叠了
  DisplayText : = False;
end;
end;

    如果用 Delphi 3 处理很简单.例如:对表中某字段当其数值小于0时为红字其他为黑字.
在 DBGrid.OnDrawColumnCell(...) 中:

begin
  if TableField.AsInteger < 0 then
    DBGrid.Canvas.Font.Color := clRed
  else
    DBGrid.Canvas.Font.Color := clBlack;
  DBGrid.DefaultDrawColumnCell(...);
end;

这样对 Field 指定的格式仍旧生效不必重写.  

(出处:www.delphibbs.com)

相关文章:
·多表头的DBGridEH导出到Excel中
·DBGrid应用全书之定义表格颜色
·打印TDBGrid内容
·自制精美易用的DBGrid
·把DBGrid导出到Excel表格(支持多Sheet)
·隔行改变DBGrid网格颜色
·在Delphi的DBGrid中插入其他可视组件
·点击DBGrid的Title对查询结果排序
·去掉DbGrid的自动添加功能
·DBGrid不支持鼠标的上下移动的解决代码
 → 特别推荐
 → 热点TOP10
关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved