网上文摘 小说 Flash游戏 最近更新 下载排行 资源分类 下载指南
经典编程资源 精彩不容错过
设为首页
加入收藏
联系我们
  当前位置:Delphi园地精选控件表格 → EasyGrid-V6(已修复)
  本周下载排行
  本月下载排行
资源名称:EasyGrid-V6(已修复)
文件类型: RAR
适用版本: Delphi5, Delphi6, Delphi7
发 布 者: DelphiFans
资源类型: 免费
资源大小: 636 KB
资源等级:
整理时间: 2004-8-6 17:27:18
资源网址:
下载次数: 本 周:3 本月:78 总计:10322
下载链接:
小说 Flash游戏
资源简介: 安装时请按照以下序列:
 
 Component->Install Packges-> <Add> 选择Discovery.bpl
 Options->Library->Search Path 中加入搜索路径。


EasyGrid 使用说明:

 一、单元格属性;
   // **************************************************
   // EasyGrid 的 Cells[i,j] 属性不同于 StringGrid。
   // StringGrid 的 Cells 仅仅是一个字符串,而 EasyGrid
   // 的 Cells 可以存储丰富的数据类型。
   //
   // 使用范例:
   //   EasyGrid1.Cells[1,2].Color := clRed;
   // 将第一列第二行的一个单元格背景置为红色。
   //
   // !!! 需要注意的是:
   //   上述语法不会导致网格自动刷新(即结果不会马上反映),因为上述语法
   // 实际上是对内存地址直接写入,这样做的好处在于,如果大批量写入数据,这
   // 是最快的方法,不会出现慢镜头式的现象。
   //   用 EasyGrid1.Colors[1,2] := clRed; 可以实现同样效果并实时刷新,
   // 但大批量写入数据时速度较慢。
   //   对大批量写入数据的处理一般需要使用 AutoUpdate 属性:
   //    EasyGrid1.AutoUpdate := False;
   //    ... 大批量写入数据
   //    EasyGrid1.AutoUpdate := True;
   //   AutoUpdate 属性的使用类似于一个与 DbGrid 关联的 DataSource 控件,
   // 当 DataSource 内容改变时,需要把 DataSource 的 Enabled 属性置为 False。
   // 以防止 DbGrid 出现慢镜头式的现象。
   // **************************************************

   // **************************************************
   // 单元格属性说明如下:
   TCellInfo = record
    DataStyle : TDataStyle; // 数据格式
     // 可用数据格式为:
     // TDataStyle = (dsText,dsNumber,dsDate,dsTime,dsFormula);
    AlignMode : TAlignMode; // 对齐方式
     // 可用对齐方式为:
     // TAlignMode = (taTopLeft, taTop, taTopRight,
     //        taLeft, taCenter, taRight,
     //        taBottomLeft, taBottom, taBottomRight);
    ReadOnly : Boolean;   // 单元格是否可编辑
    AutoWordBreak : Boolean; // 文字自动折行
    ShowForeText : Boolean; // 显示控制(Default True)
     // 说明:每个单元格允许存放两个字符串:
     //    ForeText 与 BackText
     // ShowForeText 属性用于指定该网格显示哪一个字符串
    DrawTop : Boolean;    // 画顶线
    DrawLeft : Boolean;   // 画左线
    DrawBottom : Boolean;  // 画底线
    DrawRight : Boolean;   // 画右线

    // 下面七个属性对于 DataStyle 为 dsNumber (数值型)的网格有效
    AllowNegative : Boolean; // 是否允许输入负数
    TrailingZero : Boolean; // 是否在小数后面补 0
    ZeroNull : Boolean;   // 输入数值 0 时是否当作空串处理
    ThousandSep : Boolean;  // 是否有千分号
    MaxLength : Integer;   // 最大编辑长度
    IntLength : Integer;   // 整数部分最大长度
    DecLength : Integer;   // 小数部分最大长度

    LineWidth : Integer;   // 边框线宽
    PenStyle : TPenStyle;  // 线形(TPenStyle 为Delphi定义类型)

    // Number 用于存储额外的数据,甚至可以用 Pointer()
    // 强制成32位结构指针,使得网格理论上可以挂接任意类型的数据
    Number : Integer;    // 存储数值

    Color : TColor;     // 网格背景颜色

    FontSize: Integer;    // 字体大小
    FontColor: TColor;    // 字体颜色
    FontStyle: TFontStyles; // 字体风格
    FontName : string;    // 字体名字
    ForeText : string;    // 前台 Text
    BackText : string;    // 后台 Text
   end;
   PCellInfo = ^TCellInfo;

 二、属性:(仅列出与DELPHI StringGrid 不同的部分)
   1、列在面板中的属性
    AlwaysDrawFocus  // 是否在失去焦点时仍然显示黑色的粗框
AutoUpdate    // 该属性很重要,说明见上
CellAlignMode   // 设置所有网格的默认属性(下同)
CellAllowNegative
CellAutoWordBreak
CellColor
CellDataStyle
CellDecLength
CellFontColor
CellFontSize
CellFontStyle
CellIntLength
CellLineWidth
CellMaxLength
CellPenStyle
CellReadOnly
CellShowForeText
CellThousandSep
CellTrailingZero
CellZeroNull
ClientLineColor  // 非固定区线条颜色
FixedLineColor  // 固定区线条颜色
ClientSizeable  // 非固定区是否允许用鼠标拖曳改变行高列宽
ColCount     // 列数
    RowCount     // 行数
Color       // 网格之外的背景颜色
DefaultColWidth  // 缺省列宽
DefaultRowHeight // 缺省行高
FixedCols     // 固定列数目(水平滚动时保持显示的列)
FixedRows     // 固定行数目(垂直滚动时保持显示的行,一般用作表头)
  GridCanCopyMove  // 是否允许交互式拖曳网格(点击黑色粗框)
GridCanFill    // 是否允许交互式填充网格
GridLineWidth   // 整个网格线条宽度
HighLightColor  // 选中网格的背景颜色
HighLightTextColor// 选中网格的文本颜色
Option      // 其他属性(类似 StringGrid 的 Option)
 goFixedVertLine // 是否显示固定区竖直线
 goFixedHorzLine // 是否显示固定区水平线
 goVertLine   // 是否显示非固定区竖直线
 goHorzLine   // 是否显示非固定区水平线
 goRangeSelect  // 是否允许用鼠标进行范围选择(选择多个单元格)
 goDrawFocusSelected // 是否显示表示选中的单元格粗框
 goRowSizing   // 是否允许用鼠标改变行高
 goColSizing   // 是否允许用鼠标改变列宽
 goEditing    // 网格是否可编辑
 goTabs     // 是否允许用 TAB 键在列之间跳动
 goRowSelect   // 是否一次选中一行(浏览模式)
 goAlwaysShowEditor // 是否总是显示编辑器
 goThumbTracking // 滑动滚动条时是否同步滚动网格
    ScrollBars    // (ssBoth, ssHorz, ssVert)
    ShowColTitle   // 是否显示标题行(顶端标有A B C D的行)
    ShowRowTitle   // 是否显示标题列(左边标有1 2 3 4的列)
    TitleColor    // 标题区颜色
FocusedTitleColor // 选中行列的 Title 区颜色
    ShowPopup     // 点击右键时是否显示属性设置菜单
   2、没有列在面板中的属性
    Canvas      // 画布属性
    Col        // 当前列
    Row;       // 当前行
    ColWidths     // 列宽数组(如:ColWidths[1] := 100)
    Aligns      // 对齐属性数组(如:Aligns[1,1] := taCenter)
    ForeTexts     // 前台文本数组(如:ForeTexts[1,1] := 'Hello')
    BackTexts     // 后台文本数组(如:BackTexts[1,1] := 'Hello')
    Colors      // 颜色属性数组(如:Colors[1,1] := clRed)
    Cells       // 说明见上
    Selection     // 当前选择区域 (TRect)
    RowHeights    // 类似 ColWidths
    ColCanSizes    // 列允许改变宽度数组(如:ColCanSizes[1] := False)
    RowCanSizes    // 行允许改变高度数组(如:RowCanSizes[1] := False)

 三、方法
    // 根据网格行列坐标计算网格的屏幕物理坐标(相对于 Grid 的左上角)
    function CellRect(ACol, ARow: Longint): TRect;

    // 计算物理坐标对应的网格的坐标
    procedure MouseToCell(X, Y: Integer; var ACol, ARow: Longint);

    // 强制更新 ARect 区域(Grid 坐标)
    procedure InvalidateRect(ARect: TGridRect);

    // 强制更新整个 Grid
    procedure InvalidateGrid;

    // 强制刷新一个 Cell ( Grid 坐标单位)
    procedure InvalidateCell(ACol, ARow: Longint);

    // 强制刷新一列 ( Grid 坐标单位)
    procedure InvalidateCol(ACol: Longint);

    // 强制刷新一行 ( Grid 坐标单位)
    procedure InvalidateRow(ARow: Longint);

    // 合并网格
    procedure SetMerges(AMergeRect: TRect; WantPrompt: Boolean = False);

    // 拆分网格
    procedure DeleteMerges(AMergeRect: TRect);

    // **********************************************
    // 注意:ClearCells 仅仅清除文本
    //    而 RestoreCells 会将网格的合并区拆散
    //    并恢复网格颜色、对齐等所有属性为缺省状态
    // **********************************************
    // 把一个范围内的 Cells 恢复到缺省状态
    procedure RestoreCells(DestRestoreRect: TRect);

    // 清除一个范围内的 Cells 的文本
    procedure ClearCells(DestClearRect: TRect);

    // 拷贝一个范围内的 Cells 内容到剪贴板中
    procedure CopyCells(DestCopyRect: TRect);

    // 拷贝一个范围内的 Cells 内容到剪贴板中并执行 RestoreCells 操作
    procedure CutCells(DestCutRect: TRect);

    // 填充网格内容(相当于点击网格右下角的黑点的填充操作)
    procedure FillCells(SrcRect: TRect; Offset: Integer; FillStyle: TFillStyle);

    // 从剪贴板中粘贴 Cells 内容到一个范围内
    procedure PasteCells(DestPasteCoord: TPoint);

    // **********************************************
    // 下述四个方法的 PropertyName 的可用参数如下:
    // pnDataStyle, pnAlignMode, pnReadOnly,pnAutoWordBreak,
    // pnShowForeText, pnDrawTop, pnDrawLeft, pnDrawRight, pnDrawBottom,
    // pnAllowNegative, pnTrailingZero, pnZeroNull, pnThousandSep, pnMaxLength,
    // pnIntLength, pnDecLength, pnLineWidth, pnPenStyle, pnNumber, pnColor,
    // pnFontSize, pnFontColor, pnFontStyle, pnFontName,
    // pnForeText, pnBackText
    // 分别对应网格的各个属性。
    // Value 参数应全部用 Pointer() 进行强制转换
    // 例如:
    //  SetRowProperty(1, pnColor, Pointer(clRed));
    // 将把第一行的颜色设为红色。
    //   通过这些方法以及属性数组(如:Colors, Aligns)对网格内容进行
    // 改动时,如果不显式指定 AutoUpdate ,会自动刷新网格显示
    // ***********************************************
    // 设置某一行的 Cell 属性值
    procedure SetColProperty(ColIndex: Integer; PropertyName: TPropertyName; Value: Pointer);

    // 设置某一行的 Cell 属性值
    procedure SetRowProperty(RowIndex: Integer; PropertyName: TPropertyName; Value: Pointer);

    // 设置某个范围内的 Cell 属性值
    procedure SetRangeProperty(Range: TRect; PropertyName: TPropertyName; Value: Pointer);

    // 设置整个 Grid 的 Cell 属性值
    procedure SetGridProperty(PropertyName: TPropertyName; Value: Pointer);
    // **********************************************

    // 清空剪贴板内容
    procedure ClearClipBoard;

    // 打开剪贴板
    procedure OpenClipBoard;

    // 关闭剪贴板
    procedure CloseClipBoard;

    // 判断剪贴板是否可用(是否有 EasyGrid 剪贴数据)
    function ClipBoardAvailable: Boolean;

    // 向右插入一个网格
    procedure InsertCellRight(InsertRect: TRect);

    // 向下插入一个网格
    procedure InsertCellDown(InsertRect: TRect);

    // 插入一行
    procedure InsertRow(InsertRect: TRect);

    // 插入一列
    procedure InsertCol(InsertRect: TRect);

    // 向右删除一个网格
    procedure DeleteCellRight(DeleteRect: TRect);

    // 向下删除一个网格
    procedure DeleteCellDown(DeleteRect: TRect);

    // 删除一行
    procedure DeleteRow(DeleteRect: TRect);

    // 删除一列
    procedure DeleteCol(DeleteRect: TRect);

    // 显示设置单元格属性窗口
    procedure SetCellProp(DefaultPage: Integer = -1);

    // 把 Grid 保存到文件中
    procedure SaveToFile(FileName: string);

    // 把 Grid 保存到文件流中
    procedure SaveToStream(FileStream: TFileStream);

    // 从文件中读出 Grid 内容
    procedure LoadFromFile(FileName: string);

    // 从文件流中读出 Grid 内容
    procedure LoadFromStream(FileStream: TFileStream);

    // 打印 Grid
    procedure Print;

    // 显示打印对话框
    procedure PrintDialog;

    // 显示打印预览窗口
    procedure Preview;

    // 显示打印机设置对话框
    function PrinterSetup: Boolean;

    // 显示页面设置对话框
    procedure PageSetup;
    
 四、事件
    此处只介绍最常用的 OnSelectCell 事件。其他与 StringGrid 类似。
      OnSelectCell 在每次用户选中一个单元格时触发。值得注意的是:网格
    此时的 Col, Row 属性尚未改变,仍然是上次的位置,OnSelectCell 的参数
    给出了新的单元格的坐标。编程者仍然可以通过对 CanSelect 参数赋值来
    指定是否允许选择该单元格。
      OnSelectCell 事件最有用途的一个应用就是:可以在网格控件上放置
    其他的控件。
      通过 CellRect 方法可以得到新的单元格的物理坐标,然后动态在该处
    Show 一个先前 Visible 属性为假的控件(如THintEdit),使得网格看上去
    可以挂接感应框。

PreviewBox 使用说明:

 一、属性
    PageCount // 页面个数
    PageIndex // 当前页
    Zoom   // 缩放比(10~100)
 二、方法
    NextPage  // 下一页
    PriorPage // 上一页
    SwitchZoom // 放大/缩小
 三、事件
    此处只介绍 OnDrawPage 事件。
     procedure(DrawCanvas: TCanvas; DrawRect: TRect;
      PageIndex: Integer; Printing: Boolean);
    参数:
     DrawCanvas // 页面画布
     DrawRect  // 可画区域
     PageIndex // 当前页面索引
     Printing  // 打印标志(是否正在打印或预览)

Calculator 使用说明:

 一、属性
     Associated  // 与之关联的 TCustomEdit 的子类控件(TEdit,THintEdit...)
            // 按下计算器的'√'键时计算结果将送到该 Edit 中
     BackColor   // 背景颜色
     ButtonSize  // 按钮大小(Ctrl + +/-)运行时可以调节
     ButtonSpace  // 按钮间隔(Ctrl + Alt + +/-)运行时可以调节
     ControlColor // 不同按钮的颜色
     NumberColor
     OperatorColor
     SpecialColor
     Moveable   // 是否允许用鼠标拖曳
     Transparent  // 是否透明(Ctrl + Alt + T)运行时可以调节
     RoundCornered // 是否圆角(Ctrl + Alt + R)运行时可以调节
     RoundRadius  // 圆角弧度
     Font     // 按钮字体(Ctrl + Alt + Shift + +/-)运行时可以调节

<BR>按此在新窗口浏览图片
Google
 
Web www.delphifans.com
相关资源:
  • EasyGrid_UDR
  • 下载帮助() 下载链接错误报告或者意见反馈
    下载说明:
    关于我们 | 广告服务 | 发布资源 | 联系站长 Copyright © 2002-2006 Delphi园地 All Rights Reserved