📄 uediting.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 + -