使用 IntraWeb (20) - 基本控件之 TIWGrid

TIWGrid 最终通过 Html Table 呈现; 其每个 Cell 都是一个 TIWGridCell 对象, Cell 对象的 Control 属性非常好, 可以非常方便地嵌入其他控件.


TIWGrid 所在单元及继承链:
IWCompGrids.TIWGrid

主要成员:


property Cell[const ARow: Integer, const AColumn: Integer]: TIWGridCell //读取单元格对象
property RowCount: Integer    //行数
property ColumnCount: Integer //列数
property ShowInvisibleRows: Boolean  //是否隐藏空行
property HiddenColumns: TStringList  //隐藏指定列, 譬如: IWGrid1.HiddenColumns.CommaText := ‘0,2‘; 是隐藏第 1、3 列
property ShowEmptyCells: Boolean     //是否显示空的单元格; 好像存在点问题
property BGColor: TIWColor           //
property BorderColors: TIWGridBorderColors //边框色分为: 主色、暗色、亮色(Color、Dark、Light)
property BorderSize: Integer               //线宽, 对应 Table 的 Border 属性
property BorderStyle: TIWGridBorderStyle   //它对应 Table 的 frame 属性(边框相关); 使用具体的属性值需要 uses IWCompGridCommon
property Caption: TCaption     //
property CellPadding: Integer  //单元格内边距
property CellSpacing: Integer  //单元格间距
property Font: TIWFont         //如果各单元格字体一直, 可以在这里一起指定
property FrameBuffer: Integer  //?
property Lines: TIWGridLines   //对应 Table 的 Rules 属性: tlAll、tlNone、tlRows、tlCols
property Summary: string       //对应 Table 的 summary 属性
property UseFrame: Boolean     //是否使用框架, 在需要时它会给出滚动条
property UseSize: Boolean      //是否使用设计时的大小; 好像只对宽度有用
property CurrentRow: Integer         //如果 ScrollToCurrentRow = True, 可通过 CurrentRow 让指定行立即可见
property ScrollToCurrentRow: Boolean //参见 CurrentRow
property CellRenderOptions: TIWCellRenderOptions //集合选项, 决定哪些 Cell 相关的设置会被使用: [crAlign, crBGcolor, crCellPadding, crStyle, crValign]

property OnCellClick: TIWOnCellClick   //如果 TIWGridCell.Clickable = True; 单元格中的文本就会变成链接, 以响应该事件
property OnRenderCell: TIWOnRenderCell //同 TStringGrid 中的 OnDrawCell, 可以在此事件中个性化单元格
property OnGetCellRenderOptions: TIWGetCellRenderOptionsEvent //可以从这里设置某些单元格的 CellRenderOptions 属性

procedure Clear //
function CellExists(const ARow: Integer; const AColumn: Integer): Boolean //判断参数指定的单元格是否有效(譬如超界了)
procedure DeleteColumn(const AColumn: Integer)  //删除列
procedure DeleteRow(const ARow: Integer)        //删除行

TIWGridCell:


{IWCompGrids.TIWGridCell

测试:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
var
  i,j: Integer;
begin
  IWGrid1.RowCount := 5;
  IWGrid1.ColumnCount := 3;

  IWGrid1.Caption := ‘Test Table‘;

  IWGrid1.BGColor := $d0d0d0;
  IWGrid1.CellPadding := 8;
  IWGrid1.Font.Size := 12;
  IWGrid1.Lines := tlCols;

  for i := 0 to IWGrid1.RowCount - 1 do
    for j := 0 to IWGrid1.ColumnCount - 1 do
    begin
      IWGrid1.Cell[i,j].Text := Format(‘%d, %d‘, [i, j]);
      IWGrid1.Cell[i,j].Alignment := taCenter;
//      IWGrid1.Cell[i,j].VAlign := vaMiddle;
      IWGrid1.Cell[i,j].Clickable := True;
      if Odd(i) then IWGrid1.Cell[i,j].BGColor := $f0f0f0;
    end;

  LinkColor := $0000FF;
  IWGrid1.UseSize := True;
end;

{OnCellClick}
procedure TIWForm1.IWGrid1CellClick(ASender: TObject; const ARow, AColumn: Integer);
begin
  WebApplication.ShowMessage(IWGrid1.Cell[ARow, AColumn].Text);
end;

效果图:


使用 IntraWeb (20) - 基本控件之 TIWGrid

时间: 2024-08-01 19:45:48

使用 IntraWeb (20) - 基本控件之 TIWGrid的相关文章

使用 IntraWeb (22) - 基本控件之 TIWCalendar

TIWCalendar: 日历控件, 继承于 TIWCustomGrid, 所以它和 TIWGrid 共同属性特多. 它的 Cell 是 TIWCalendarCell 对象, 直接从 TIWGridCell 继承. TIWCalendar 所在单元及继承链: IWCompCalendar.TIWCalendar 主要成员: property Cell[const ARow: Integer, const AColumn: Integer]: TIWCalendarCell // propert

使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm

TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应该只是内部使用的东西, 对用户没有意义 {需要把它们关联到窗体的 LayoutMgr 属性; 主模板需要通过 IWServerController.MasterTemplate 指定} TIWTemplateProcessorHTML 所在单元及继承链: IWTemplateProcessorHTM

使用 IntraWeb (26) - 基本控件之 TIWMenu

TIWMenu 的任务是让原来的 TMainMenu 呈现在网页上, 通过其 AttachedMenu 属性关联一个 TMainMenu 是必需的. TIWMenu 所在单元及继承链: IWCompMenu.TIWMenu 主要成员: property TextOffset: Integer //菜单文本偏移(只读) property AttachedMenu: TMainMenu //指定要包装的 TMainMenu property ItemSpacing: TIWSpaceItems //

使用 IntraWeb (13) - 基本控件之 TIWLabel、TIWLink、TIWURL、TIWURLWindow

TIWLabel    // TIWLink      //内部链接 TIWURL      //外部链接 TIWURLWindow //页内框架, 就是 <iframe></iframe> TIWLabel 所在单元及继承链:IWCompLabel.TIWLabel < TIWCustomLabel < TIWCustomControl < TIWBaseHTMLControl < TIWBaseControl < TIWVCLBaseControl

使用 IntraWeb (16) - 基本控件之 TIWList、TIWListbox、TIWComboBox、TIWOrderedListbox

TIWList //列表; 它对应 Html 中的 OL.LI(某些选项下会用表格模拟); TIWListbox 和 TIWComboBox 则对应 Html 在的 Option TIWListbox //列表框 TIWComboBox //组合下拉框 TIWOrderedListbox //可手动调整顺序的列表; 好像是新增的, 还不成熟 TIWList 所在单元及继承链: IWHTMLControls.TIWList 主要成员: property Items: TStringList //

使用 IntraWeb (23) - 基本控件之 TIWTimer、TIWProgressBar、TIWProgressIndicator、TIWTimeEdit

TIWTimer //和 TTimer 没多大区别, 它的默认事件现在是异步的(OnAsyncTimer), 在网络上使用 OnTimer 肯定是非常糟糕的 TIWProgressBar //进度条 TIWProgressIndicator //进度提示器; 这是个新东西, 非常好; 当碰到时间较长的加载时(同步或异步)都可以用用; 使用前需要先关联到窗体的 ProgressIndicator 属性 TIWTimeEdit //个人认为这个东西一点用也没有; 只是给个分钟数按 8 小时换算成天.

使用 IntraWeb (17) - 基本控件之 TIWRadioButton、TIWRadioGroup、TIWCheckBox

TIWRadioButton //单选 TIWRadioGroup //单选组 TIWCheckBox //复选 TIWRadioButton 所在单元及继承链: IWCompRadioButton.TIWRadioButton 主要成员: property Editable: Boolean // property Checked: Boolean // property Group: string //分组名; 在统一母体中的单选按钮, 组名相同者互斥 property Value: str

使用 IntraWeb (25) - 基本控件之 TIWRegion

这应该是 IW 中最重要的容器了, 和它同父的还有 TIWTabControl TIWRegion 所在单元及继承链: IWRegion.TIWRegion 主要成员: property Align: TAlign property Anchors: TAnchors property BorderOptions: TIWContainerBorderOptions //设置边框的宽度.颜色.样式 property Color: TIWColor property ClipRegion: Boo

使用 IntraWeb (21) - 基本控件之 TIWTabControl

TIWTabControl 包含的是 TIWTabPage; 设计时通过右键菜单 Add Page 添加(再给页面添加东西时一定要先选定页面); 下面例子是动态添加的. TIWTabControl 所在单元及继承链: IWCompTabControl.TIWTabControl 主要成员: property Pages: TList //TIWTabPage 对象的集合; 但它是 TList 类型, 使用前需转换下 property ActiveTabFont: TIWFont //当前 Tab