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