⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aligredi.pas

📁 一个STRINGGRID 控件,比原DELPHI自带的STRINGGRID 功能强大
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    btn_font.down:=result;
    if result then
(*@///       _grid.SetFont...(...,fontdialog.font); *)
case grp_what.itemindex of
  0: _grid.SetFontCell(ACol,ARow,fontdialog.font);
  1: _grid.SetFontCol(ACol,fontdialog.font);
  2: _grid.SetFontFixedCol(ACol,fontdialog.font);
  3: _grid.SetfontRow(ARow,fontdialog.font);
  4: _grid.SetFontFixedRow(ARow,fontdialog.font);
  end
(*@\\\0000000401*)
    else
(*@///       _grid.Resetfont...(...); *)
case grp_what.itemindex of
  0: _grid.ResetfontCell(ACol,ARow);
  1: _grid.ResetfontCol(ACol);
  2: _grid.ResetfontFixedCol(ACol);
  3: _grid.ResetfontRow(ARow);
  4: _grid.ResetfontFixedRow(ARow);
  end;
(*@\\\0000000206*)
    if _grid.edit_visible then _grid.Update_Edit;
  finally
    changing:=false;
    end;
  end;
(*@\\\*)
(*@/// procedure Taligrid_edit.edt_readClick(Sender: TObject); *)
procedure Taligrid_edit.edt_readClick(Sender: TObject);
var
  ACol,ARow: longint;
  _grid: THackgrid;
begin
  if changing then EXIT;
  try
    changing:=true;
    _grid:=THackgrid(grid);
    ACol:=grid.col;
    ARow:=grid.row;
    case edt_read.state of
(*@///       cbUnChecked: *)
cbUnChecked:
  case grp_what.itemindex of
    0: _grid.EditCell[ACol,ARow]:=true;
    1: _grid.EditCol[ACol]:=true;
    3: _grid.EditRow[ARow]:=true;
    end;
(*@\\\0000000105*)
(*@///       cbGrayed: *)
cbGrayed:
  case grp_what.itemindex of
    0: _grid.ResetEditCell(ACol,ARow);
    1: _grid.ResetEditCol(ACol);
    3: _grid.ResetEditRow(ARow);
    end;
(*@\\\*)
(*@///       cbChecked: *)
cbChecked:
  case grp_what.itemindex of
    0: _grid.EditCell[ACol,ARow]:=false;
    1: _grid.EditCol[ACol]:=false;
    2: _grid.EditRow[ARow]:=false;
    end;
(*@\\\0000000103*)
      end;
  finally
    changing:=false;
    end;
  end;
(*@\\\0000000D01*)
(*@/// procedure Taligrid_edit.btn_alignClick(Sender: TObject); *)
procedure Taligrid_edit.btn_alignClick(Sender: TObject);
var
  ACol,ARow: longint;
  _grid: THackgrid;
begin
  if changing then EXIT;
  try
    changing:=true;
    _grid:=THackgrid(grid);
    ACol:=grid.col;
    ARow:=grid.row;
    if false then
(*@///     else if btn_left.down then *)
else if btn_left.down then begin
  case grp_what.itemindex of
    0: _grid.AlignCell[ACol,ARow]:=alLeft;
    1: _grid.AlignCol[ACol]      :=alLeft;
    2: _grid.FixAlignCol[ACol]   :=alLeft;
    3: _grid.AlignRow[ARow]      :=alLeft;
    4: _grid.FixAlignRow[ARow]   :=alLeft;
    end;
  end
(*@\\\*)
(*@///     else if btn_right.down then *)
else if btn_right.down then begin
  case grp_what.itemindex of
    0: _grid.AlignCell[ACol,ARow]:=alRight;
    1: _grid.AlignCol[ACol]      :=alRight;
    2: _grid.FixAlignCol[ACol]   :=alRight;
    3: _grid.AlignRow[ARow]      :=alRight;
    4: _grid.FixAlignRow[ARow]   :=alRight;
    end;
  end
(*@\\\0000000326*)
(*@///     else if btn_center.down then *)
else if btn_center.down then begin
  case grp_what.itemindex of
    0: _grid.AlignCell[ACol,ARow]:=alCenter;
    1: _grid.AlignCol[ACol]      :=alCenter;
    2: _grid.FixAlignCol[ACol]   :=alCenter;
    3: _grid.AlignRow[ARow]      :=alCenter;
    4: _grid.FixAlignRow[ARow]   :=alCenter;
    end;
  end
(*@\\\0000000201*)
(*@///     else ResetAlignment *)
else begin
  case grp_what.itemindex of
    0: _grid.ResetAlignCell(ACol,ARow);
    1: _grid.ResetAlignCol(ACol);
    2: _grid.ResetAlignFixedCol(ACol);
    3: _grid.ResetAlignRow(ARow);
    4: _grid.ResetAlignFixedRow(ARow);
    end;
  end;
(*@\\\*)
    if _grid.edit_visible then _grid.Update_Edit;
  finally
    changing:=false;
    end;
  end;
(*@\\\*)
(*@/// procedure Taligrid_edit.btn_wrapClick(Sender: TObject); *)
procedure Taligrid_edit.btn_wrapClick(Sender: TObject);
var
  ACol,ARow: longint;
  _grid: THackgrid;
begin
  if changing then EXIT;
  try
    changing:=true;
    _grid:=THackgrid(grid);
    ACol:=grid.col;
    ARow:=grid.row;
    if false then
(*@///     else if btn_ww_none.down then *)
else if btn_ww_none.down then begin
  case grp_what.itemindex of
    0: _grid.WordwrapCell[ACol,ARow]:=ww_none;
    1: _grid.WordwrapCol[ACol]      :=ww_none;
    2: _grid.FixWordwrapCol[ACol]   :=ww_none;
    3: _grid.WordwrapRow[ARow]      :=ww_none;
    4: _grid.FixWordwrapRow[ARow]   :=ww_none;
    end;
  end
(*@\\\0000000114*)
(*@///     else if btn_ww_wrap.down then *)
else if btn_ww_wrap.down then begin
  case grp_what.itemindex of
    0: _grid.WordwrapCell[ACol,ARow]:=ww_wordwrap;
    1: _grid.WordwrapCol[ACol]      :=ww_wordwrap;
    2: _grid.FixWordwrapCol[ACol]   :=ww_wordwrap;
    3: _grid.WordwrapRow[ARow]      :=ww_wordwrap;
    4: _grid.FixWordwrapRow[ARow]   :=ww_wordwrap;
    end;
  end
(*@\\\0000000114*)
(*@///     else if btn_ww_elli.down then *)
else if btn_ww_elli.down then begin
  case grp_what.itemindex of
    0: _grid.WordwrapCell[ACol,ARow]:=ww_ellipsis;
    1: _grid.WordwrapCol[ACol]      :=ww_ellipsis;
    2: _grid.FixWordwrapCol[ACol]   :=ww_ellipsis;
    3: _grid.WordwrapRow[ARow]      :=ww_ellipsis;
    4: _grid.FixWordwrapRow[ARow]   :=ww_ellipsis;
    end;
  end
(*@\\\0000000301*)
(*@///     else ResetWordwrap *)
else begin
  case grp_what.itemindex of
    0: _grid.ResetWordwrapCell(ACol,ARow);
    1: _grid.ResetWordwrapCol(ACol);
    2: _grid.ResetWordwrapFixedCol(ACol);
    3: _grid.ResetWordwrapRow(ARow);
    4: _grid.ResetWordwrapFixedRow(ARow);
    end;
  end;
(*@\\\*)
  finally
    changing:=false;
    end;
  end;
(*@\\\0000000119*)
(*@/// procedure Taligrid_edit.grp_cellClick(Sender: TObject); *)
procedure Taligrid_edit.grp_cellClick(Sender: TObject);
var
  _grid: THackgrid;
begin
  _grid:=THackgrid(grid);
  if grp_cell.itemindex=show_cell then EXIT;
  _grid.Hideedit(false);
  show_cell:=grp_cell.itemindex;
  case show_cell of
    0: begin
      _grid.CellsToList(_grid.FHintCell);
      _grid.ListToCells(_grid.FCell);
      end;
    1: begin
      _grid.CellsToList(_grid.FCell);
      _grid.ListToCells(_grid.FHintCell);
      end;
    end;
  end;
(*@\\\0000000711*)
(*@/// procedure Taligrid_edit.gridSelectCell(Sender: TObject; Col,  Row: Longint...); *)
procedure Taligrid_edit.gridSelectCell(Sender: TObject; Col,
  Row: Longint; var CanSelect: Boolean);
begin
  Update_Group(col,row);
  end;
(*@\\\0000000401*)
(*@/// procedure Taligrid_edit.grp_whatClick(Sender: TObject); *)
procedure Taligrid_edit.grp_whatClick(Sender: TObject);
begin
  Update_Group(grid.col,grid.row);
  end;
(*@\\\0000000301*)
(*@/// procedure Taligrid_edit.edt_wh_Change(Sender: TObject); *)
procedure Taligrid_edit.edt_wh_Change(Sender: TObject);
begin
  if changing then EXIT;
  grid.ColWidths[grid.col]:=edt_width.value;
  grid.RowHeights[grid.row]:=edt_height.value;
  end;
(*@\\\0000000401*)

(*@/// procedure Taligrid_edit.Update_Group(col,row:longint); *)
procedure Taligrid_edit.Update_Group(col,row:longint);
var
  v:TCellProperties;
  Alignment: TMyAlign;
  wordwrap: t_wordwrap;
  editable: byte;
  font,brush: pointer;
  _grid: THackgrid;
begin
  try
    changing:=true;
    _grid:=THackgrid(grid);
    if (Col>=0) or (Row>=0) then begin
      case grp_what.itemindex of
        0: v:=GetItemCell(Col,Row,_grid.FPropCell);
        1: v:=GetItemCol(Col,_grid.FPropCol);
        2: v:=GetItemCol(Col,_grid.FFPropCol);
        3: v:=GetItemCol(Row,_grid.FPropRow);
        4: v:=GetItemCol(Row,_grid.FFPropRow);
        else  v:=NIL;
        end;
(*@///       Set alignment checks *)
if v=NIL then
  Alignment:=alDefault
else
  Alignment:=v.align;

case alignment of
  alRight : btn_right.down:=true;
  alLeft  : btn_left.down:=true;
  alCenter: btn_center.down:=true;
  alDefault: begin
    btn_left.down:=false;
    btn_right.down:=false;
    btn_center.down:=false;
    end;
  end;
(*@\\\0000000201*)
(*@///       Set wordwrap checks *)
if v=NIL then
  Wordwrap:=ww_Default
else
  Wordwrap:=v.wordwrap;

case Wordwrap of
  ww_none     : btn_ww_none.down:=true;
  ww_wordwrap : btn_ww_wrap.down:=true;
  ww_ellipsis : btn_ww_elli.down:=true;
  ww_default  : begin
    btn_ww_none.down:=false;
    btn_ww_wrap.down:=false;
    btn_ww_elli.down:=false;
    end;
  end;
(*@\\\*)
(*@///       Set editable checks *)
edt_read.enabled:=(grp_what.itemindex<>2) and (grp_what.itemindex<>4);

if (v=NIL) or (grp_what.itemindex=2) or (grp_what.itemindex=4) then
  editable:=0
else
  editable:=v.editable;

case editable of
  0: edt_read.state:=cbGrayed;
  2: edt_read.state:=cbUnChecked;
  1: edt_read.state:=cbChecked;
  end;
(*@\\\0000000A04*)
(*@///       Set font checks *)
if v=NIL then
  font:=NIL
else
  font:=v.font;

if (font=NIL) or not TMyFont(font).Haschanged then
  btn_font.down:=false
else
  btn_font.down:=true;
(*@\\\*)
(*@///       Set color/brush checks *)
if v=NIL then
  brush:=NIL
else
  brush:=v.brush;

if (Brush=NIL) or not TMyBrush(Brush).Haschanged then
  btn_color.down:=false
else
  btn_color.down:=true;
(*@\\\0000000801*)
      edt_width.value :=grid.ColWidths[col] ;
      edt_height.value:=grid.RowHeights[row];
      case grp_what.itemindex of
        0: grp_edit.caption:='Cell '+inttostr(col)+'/'+inttostr(row);
        1: grp_edit.caption:='Column '+inttostr(col);
        2: grp_edit.caption:='Fixed column '+inttostr(col);
        3: grp_edit.caption:='Row '+inttostr(row);
        4: grp_edit.caption:='Fixed Row '+inttostr(row);
        end;
      end;
  finally
    changing:=false;
    end;
  end;
(*@\\\0000001801*)
(*@\\\0000000110*)
(*@\\\0000000B01*)
end.
(*@\\\0001000015000601*)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -