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

📄 uediting.pas

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

interface

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

type
  TfrmEditing = class(TForm)
    memoMain: TMemo;
    Splitter1: TSplitter;
    Panel1: TPanel;
    lstMain: TListBox;
    Splitter2: TSplitter;
    grdMain: TRealGrid;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure grdMainCalcColumns(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure grdMainAfterDelete(Sender: TObject);
    procedure grdMainAfterEdit(Sender: TObject);
    procedure grdMainAfterInsert(Sender: TObject);
    procedure grdMainAfterPost(Sender: TObject);
    procedure grdMainBeforeDelete(Sender: TObject);
    procedure grdMainBeforeEdit(Sender: TObject);
    procedure grdMainBeforeInsert(Sender: TObject);
    procedure grdMainBeforePost(Sender: TObject);
    procedure grdMainCalcFooters(Sender: TObject; var Default: Boolean);
    procedure grdMainEdit(AColumn: TwColumn; var Accept: Boolean);
    procedure grdMainValueChanged(Sender: TObject; ACol: Integer);
    procedure grdMainValueChanging(Sender: TObject; ACol: Integer;
      const NewValue: Variant);
    procedure grdMainNewRow(Sender: TObject);
    procedure grdMainBeforeCancel(Sender: TObject);
    procedure grdMainAfterCancel(Sender: TObject);
  private
    procedure CalcColumns(ARow: Integer);
    procedure InitData;
    procedure InsertItem(const S: string);

  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绰 角青矫 荤侩磊俊 狼茄 涝仿阑 TDBGrid狼 弊巴苞 蜡荤窍霸 贸府钦聪促.' + #13#10 +
                ' 溜, 涝仿 傈饶, 阿 伎 磊丰狼 函版 殿俊 措秦 捞亥飘甫 力傍钦聪促. 磊丰 涝仿矫 TDataSource俊辑 ' +
                '惯积窍绰 措俺狼 捞亥飘甸捞 TRealGrid俊辑档 惯积茄促绊 咯扁搁 瞪 巴涝聪促.' + #13#10 +
                ' 窍瘤父 捞繁 捞亥飘 贸府绰 傈利栏肺 角青矫埃 荤侩磊 涝仿矫俊父 蜡瓤钦聪促. ' +
                '俺惯磊 内爹阑 烹秦 溜, Cells 加己捞唱 AddRow, DeleteRow殿狼 皋筋靛甫 烹秦 ' +
                '磊丰甫 祈笼且 锭绰 捞亥飘啊 惯积窍瘤 臼嚼聪促.' + #13#10 +
                ' 付瘤阜 陛咀 拿烦篮 Calculated 拿烦捞扼 涝仿登瘤 臼嚼聪促. 拌魂 拿烦篮 OnCalcColumns 捞亥飘俊辑 ' +
                '蔼阑 汲沥钦聪促.';

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

procedure TfrmEditing.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;

procedure TFrmEditing.InsertItem(const S: string);
begin
  with lstMain do
  begin
    Items.Add(S);
    ItemIndex := Items.Count - 1;
  end;
end;

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

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

procedure TfrmEditing.grdMainCalcColumns(Sender: TObject);
begin
  CalcColumns(grdMain.Row);
  InsertItem('OnCalcColumns');
end;

procedure TfrmEditing.grdMainAfterDelete(Sender: TObject);
begin
  InsertItem('OnAfterDelete');
end;

procedure TfrmEditing.grdMainAfterEdit(Sender: TObject);
begin
  InsertItem('OnAfterEdit');
end;

procedure TfrmEditing.grdMainAfterInsert(Sender: TObject);
begin
  InsertItem('OnAfterInsert');
end;

procedure TfrmEditing.grdMainAfterPost(Sender: TObject);
begin
  InsertItem('OnAfterPost');
end;

procedure TfrmEditing.grdMainBeforeDelete(Sender: TObject);
begin
  InsertItem('OnBeforeDelete');
end;

procedure TfrmEditing.grdMainBeforeEdit(Sender: TObject);
begin
  InsertItem('OnBeforeEdit');
end;

procedure TfrmEditing.grdMainBeforeInsert(Sender: TObject);
begin
  InsertItem('OnBeforeInsert');
end;

procedure TfrmEditing.grdMainBeforePost(Sender: TObject);
begin
  InsertItem('OnBeforePost');
end;

procedure TfrmEditing.grdMainCalcFooters(Sender: TObject;
  var Default: Boolean);
begin
  InsertItem('OnCalcFooters');
end;

procedure TfrmEditing.grdMainEdit(AColumn: TwColumn; var Accept: Boolean);
begin
  InsertItem('OnEdit');
end;

procedure TfrmEditing.grdMainValueChanged(Sender: TObject; ACol: Integer);
begin
  lstMain.Items.Add('OnValueChanged');
end;

procedure TfrmEditing.grdMainValueChanging(Sender: TObject; ACol: Integer;
  const NewValue: Variant);
begin
  lstMain.Items.Add('OnValueChanging');
end;

procedure TfrmEditing.grdMainNewRow(Sender: TObject);
begin
  lstMain.Items.Add('OnNewRow');
end;

procedure TfrmEditing.grdMainBeforeCancel(Sender: TObject);
begin
  lstMain.Items.Add('OnBeforeCancel');
end;

procedure TfrmEditing.grdMainAfterCancel(Sender: TObject);
begin
  lstMain.Items.Add('OnAfterCancel');
end;

end.

⌨️ 快捷键说明

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