📄 zidingyikongjian.txt
字号:
unit InputEdit;
interface
uses Windows, Messages, SysUtils, Classes,
Forms, Controls, ComCtrls, CommCtrl,StdCtrls ;
type
TInputEdit = class(TCustomEdit)
private
FNumber1:integer;
FNumber2:integer;
FUnit1:widestring;
FUnit2:widestring;
FBili:integer;
procedure SetNumber1(Value:integer);
function GetNumber1:integer;
procedure SetNumber2(Value:integer);
function GetNumber2:integer;
procedure SetBili(Value:integer);
function GetBili:integer;
procedure SetAllCount(Value:integer);
function GetAllCount:integer;
procedure SetUnit1(Value:widestring);
function GetUnit1:Widestring;
procedure SetUnit2(Value:widestring);
function GetUnit2:Widestring;
function CalculateCount:integer;
Procedure DoChange;
protected
procedure KeyPress(var Key: char); override;
public
constructor Create(AOwner: TComponent); override;
published
property Bags:integer read GetNumber1 write SetNumber1; //包装数量
property Piece:integer read GetNumber2 write SetNumber2;//片数
property Count:integer read GetAllCount write SetAllCount;//总片数
property BagUnit:widestring read GetUnit1 write SetUnit1;//包装单位名称
property PieceUnit:widestring read GetUnit2 write SetUnit2;//小件单位名称
Property Bili:integer read GetBili write SetBili;
property Align;
property Anchors;
property AutoSelect;
property AutoSize;
property BevelEdges;
property BevelInner;
property BevelKind default bkNone;
property BevelOuter;
property BevelWidth;
property BiDiMode;
property BorderStyle;
property CharCase;
property Color;
property Constraints;
property Ctl3D;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property Font;
property HideSelection;
property ImeMode;
property ImeName;
property MaxLength;
property OEMConvert;
property ParentBiDiMode;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PasswordChar;
property PopupMenu;
property ReadOnly;
property ShowHint;
property TabOrder;
property TabStop;
property Text;
property Visible;
property OnChange;
property OnClick;
property OnContextPopup;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress ;
property OnKeyUp;
property OnMouseActivate;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
procedure Register;
implementation
{~~~~~~~~~~~~~~~~~~~~~~TInputEdit~~~~~~~~~~~~~~~~~~~~~~~~}
constructor TInputEdit.Create(AOwner: TComponent);
begin
//初始化ICC_INTERNET_CLASSES类控件
// CheckCommonControl(ICC_INTERNET_CLASSES);
inherited Create(AOwner);
FNumber1:=0;
FNumber2:=0;
FUnit1:='箱';
FUnit2:='片';
FBili:=10;
DoChange;
end;
procedure TInputEdit.DoChange;
begin
Text:=inttostr(FNumber1)+FUnit1+inttostr(FNumber2)+Funit2;
end;
function TInputEdit.CalculateCount:integer;
var
Symbo:integer;
begin
if Fnumber1>0 then
symbo:=1
else
symbo:=-1;
result:=symbo*(abs(Fnumber1)*FBili+abs(FNumber2));
end;
procedure TInputEdit.KeyPress(var Key: char);
begin
inherited keypress(key);
if (ord(key)<=57) and (ord(key)>=48) then
inherited //如果是数字则调用原来的处理程序
else if key='-' then
begin
if self.SelStart=0 then
inherited
else
key:=#0;
end
else
Key:=#0;
end;
procedure TInputEdit.SetNumber1(Value:integer);
begin
if FNumber1<>Value then
begin
FNumber1:=Value;
DoChange;
end;
end;
function TInputEdit.GetNumber1:integer;
begin
Result:=FNumber1;
end;
procedure TInputEdit.SetNumber2(Value:integer);
begin
if (FNumber2<>Value) and (FNumber2>=0) then
begin
FNumber2:=Value;
DoChange;
end;
end;
function TInputEdit.GetNumber2:integer;
begin
Result:=FNumber2;
end;
procedure TInputEdit.SetBili(Value:integer);
begin
if (FBili<>Value) and (Value>0) then
begin
FBili:=Value;
end;
end;
function TInputEdit.GetBili:integer;
begin
Result:=FBili;
end;
procedure TInputEdit.SetAllCount(Value:integer);
var
l:integer;
begin
if Value= CalculateCount then exit;
if value>=0 then
l:=1
else
l:=-1;
FNumber1:=l*(abs(Value) div FBili);
FNumber2:=abs(Value) Mod FBili;
DoChange;
end;
function TInputEdit.GetAllCount:integer;
begin
Result:=CalculateCount;
end;
procedure TInputEdit.SetUnit1(Value:widestring);
begin
if Value<>FUnit1 then
begin
FUnit1:=Value;
DoChange;
end;
end;
function TInputEdit.GetUnit1:Widestring;
begin
Result:=FUnit1;
end;
procedure TInputEdit.SetUnit2(Value:widestring);
begin
if Value<>FUnit2 then
begin
FUnit2:=Value;
DoChange;
end;
end;
function TInputEdit.GetUnit2:Widestring;
begin
Result:=FUnit2;
end;
//注册TInputEdit控件
procedure Register;
begin
RegisterComponents('Arcan', [TInputEdit]);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -