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

📄 urowtypes.pas

📁 Korea, a data table control 韩国控件的DEMO 值得学习
💻 PAS
字号:
unit URowTypes;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  URGrids, ExtCtrls, StdCtrls, ImgList;

type
  TfrmRowTypes = class(TForm)
    memoMain: TMemo;
    Splitter1: TSplitter;
    grdMain: TRealGrid;
    Panel1: TPanel;
    cmClearStates: TButton;
    cmClearChanged: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure grdMainBeforeDelete(Sender: TObject);
    procedure cmClearStatesClick(Sender: TObject);
    procedure grdMainDrawMarker(Sender: TObject; ARow: Integer;
      var S: String; var BCol, FCol: TColor; var FStyle: TFontStyles;
      var ImgIndex: Integer; var Value: Boolean);
    procedure cmClearChangedClick(Sender: TObject);
    procedure grdMainCalcColumns(Sender: TObject);
  private
    procedure CalcColumns(ARow: Integer);
    procedure InitData;

  public
  end;

implementation

{$R *.DFM}

const
  GD_ITEM  = 0;
  GD_GUBUN = 1;
  GD_QUANT = 2;
  GD_DANGA = 3;
  GD_VAT   = 4;
  GD_SUM   = 5;

  Description = 'TRealGrid绰 阿 Row狼 惑怕甫 钎矫且 荐 乐绰 加己阑 力傍钦聪促.' + #13#10 +
                '扁夯利栏肺 TRealGrid狼 阿 Row绰 wrNormal, wrUpdated, wrInserted, wrDeleted 刘 窍唱狼 ' +
                'RowState肺 汲沥登绢 乐嚼聪促.' +
                'TRealGrid狼 CheckRowState 加己阑 True肺 汲沥窍搁 wrUpdated, wrInsertd绰 ' +
                '角青矫 荤侩磊狼 涝仿俊 蝶扼 磊悼 汲沥邓聪促. ' + #13#10 +
                'wrDeleted绰 俺惯磊啊 利例茄 矫痢俊 RowState[] 加己阑 捞侩秦 汲沥钦聪促. ' +
                '抗牧措 OnBeforeDelete 捞亥飘 郴俊辑 RowState[Row] := wrDeleted 肺 汲沥窍绊 Abort窃栏肺结 ' +
                '角力肺 Row甫 昏力窍瘤 臼绊 昏力夸备啊 乐菌促绰 钎矫父阑 且 荐档 乐嚼聪促. ' +
                '酒贰狼 抗力绰 弊繁 侥栏肺 贸府等 巴涝聪促.' + #13#10 +
                '肚茄, RowState[] 寇俊 RowType[] 加己阑 烹秦 0 俊辑 7 鳖瘤狼 蔼栏肺 ' +
                '秦寸 Row狼 己拜阑 备盒且 荐档 乐嚼聪促.' + #13#10 +
                '捞犯霸 汲沥等 Row 惑怕绰 ClearRowStates唱 ClearRowTypes甫 龋免窍扁 傈鳖瘤 蜡瘤邓聪促.' + #13#10 +
                '肚茄 荤侩磊 祈笼俊 狼秦 祈笼葛靛肺 甸绢啊扁 傈苞 蔼捞 函版等 Row绰 ChangedRow[] 加己捞 True甫 馆券钦聪促.' + #13#10 +
                'Markers绰 夯贰 捞矾茄 Row 沥焊甫 钎矫窍扁 困秦 父甸绢柳 巴涝聪促.' + #13#10 +
                '酒贰狼 抗力绰 UpdatedRow绰 clOlive, InsertedRow绰 clYellow, DeletedRow绰 clMaroon 栏肺 ' +
                '秦寸 Row Marker狼 官帕阑 磨窍档废 窍绊 ' +
                '肚茄, Markers.Style阑 wmsBoolean栏肺 汲沥窍绊 ChangedRow[] 啊 True牢 Row绰 Check 钎矫登档废 ' +
                'OnDrawMarker捞亥飘甫 贸府窍看嚼聪促.' + #13#10 +
                'Markers.Images 加己阑 捞侩窍搁 捞固瘤甫 钎矫且 荐档 乐嚼聪促.';

(*** Private Methods ***)
procedure TfrmRowTypes.CalcColumns(ARow: Integer);
const
  Vats: array[Boolean] of LongInt = (100, 110);
begin
  with grdMain do
    Cells[GD_SUM, ARow].AsFloat := Cells[GD_QUANT, ARow].AsFloat *
                                   Cells[GD_DANGA, ARow].AsFloat *
                                   Vats[Cells[GD_VAT, ARow].AsBool] / 100;
end;

procedure TfrmRowTypes.InitData;
begin
  with grdMain do
  begin
    RowCount := 2;

    Cells[GD_ITEM , 0].AsIndex := 0;
    Cells[GD_GUBUN, 0].AsBool  := True;
    Cells[GD_QUANT, 0].AsLong  := 5;
    Cells[GD_DANGA, 0].AsLong  := 10000;
    Cells[GD_VAT  , 0].AsBool  := False;
    CalcColumns(0);

    Cells[GD_ITEM , 1].AsIndex := 1;
    Cells[GD_GUBUN, 1].AsBool  := False;
    Cells[GD_QUANT, 1].AsLong  := 10;
    Cells[GD_DANGA, 1].AsLong  := 2000;
    Cells[GD_VAT  , 1].AsBool  := True;
    CalcColumns(1);
  end;
end;

(*** Event Handlers ***)
procedure TfrmRowTypes.FormCreate(Sender: TObject);
begin
  InitData;
  memoMain.Lines.Text := Description;
end;

procedure TfrmRowTypes.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TfrmRowTypes.grdMainBeforeDelete(Sender: TObject);
begin
  with grdMain do RowState[Row] := wrDeleted;
  Abort;
end;

procedure TfrmRowTypes.cmClearStatesClick(Sender: TObject);
begin
  grdMain.ClearRowStates;
end;

procedure TfrmRowTypes.cmClearChangedClick(Sender: TObject);
begin
  grdMain.ClearChanged;
end;

procedure TfrmRowTypes.grdMainDrawMarker(Sender: TObject; ARow: Integer;
  var S: String; var BCol, FCol: TColor; var FStyle: TFontStyles;
  var ImgIndex: Integer; var Value: Boolean);
begin
  case grdMain.RowState[ARow] of
    wrUpdated : BCol := clOlive;
    wrInserted: BCol := clYellow;
    wrDeleted : BCol := clMaroon;
  end;

  if grdMain.ChangedRow[ARow] then
  begin
    ImgIndex := 0;
    Value    := True;
  end;
end;

procedure TfrmRowTypes.grdMainCalcColumns(Sender: TObject);
begin
  CalcColumns(grdMain.Row);
end;

end.

⌨️ 快捷键说明

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