📄 iphonepad.pas
字号:
{*******************************************************}
{ }
{ TiPhonePad Component }
{ }
{ Copyright (c) 1997,2003 Iocomp Software }
{ }
{*******************************************************}
{$I iInclude.inc}
{$ifdef iVCL}unit iPhonePad;{$endif}
{$ifdef iCLX}unit QiPhonePad;{$endif}
interface
uses
{$I iIncludeUses.inc}
{$IFDEF iVCL} iTypes, iGPFunctions, iClasses, iCustomComponent;{$ENDIF}
{$IFDEF iCLX}QiTypes, QiGPFunctions, QiClasses, QiCustomComponent;{$ENDIF}
type
TiPhonePadKeyEvent = procedure(Sender : TObject; KeyCode : Integer; AChar: Char) of object;
TiPhonePad = class(TiCustomComponent)
private
FButtonWidth : Integer;
FButtonHeight : Integer;
FMarginVert : Integer;
FMarginHorz : Integer;
FSpacingVert : Integer;
FSpacingHorz : Integer;
FFont : TFont;
FOuterMargin : Double;
FButtonSpacing : Double;
FButtonList : TStringList;
FMouseDownObject : TiButton;
FButton0 : TiButton;
FButton1 : TiButton;
FButton2 : TiButton;
FButton3 : TiButton;
FButton4 : TiButton;
FButton5 : TiButton;
FButton6 : TiButton;
FButton7 : TiButton;
FButton8 : TiButton;
FButton9 : TiButton;
FButtonA : TiButton;
FButtonP : TiButton;
FShowFocusRect : Boolean;
FOnKeyClick : TiPhonePadKeyEvent;
protected
procedure SetFont (const Value: TFont);
procedure SetOuterMargin (const Value: Double);
procedure SetButtonSpacing(const Value: Double);
procedure SetShowFocusRect(const Value: Boolean);
procedure SetButtonVisible0(const Value: Boolean);
procedure SetButtonVisible1(const Value: Boolean);
procedure SetButtonVisible2(const Value: Boolean);
procedure SetButtonVisible3(const Value: Boolean);
procedure SetButtonVisible4(const Value: Boolean);
procedure SetButtonVisible5(const Value: Boolean);
procedure SetButtonVisible6(const Value: Boolean);
procedure SetButtonVisible7(const Value: Boolean);
procedure SetButtonVisible8(const Value: Boolean);
procedure SetButtonVisible9(const Value: Boolean);
procedure SetButtonVisibleA(const Value: Boolean);
procedure SetButtonVisibleP(const Value: Boolean);
procedure SetButtonCaption0(const Value: String);
procedure SetButtonCaption1(const Value: String);
procedure SetButtonCaption2(const Value: String);
procedure SetButtonCaption3(const Value: String);
procedure SetButtonCaption4(const Value: String);
procedure SetButtonCaption5(const Value: String);
procedure SetButtonCaption6(const Value: String);
procedure SetButtonCaption7(const Value: String);
procedure SetButtonCaption8(const Value: String);
procedure SetButtonCaption9(const Value: String);
procedure SetButtonCaptionP(const Value: String);
procedure SetButtonCaptionA(const Value: String);
function GetButtonVisible0: Boolean;
function GetButtonVisible1: Boolean;
function GetButtonVisible2: Boolean;
function GetButtonVisible3: Boolean;
function GetButtonVisible4: Boolean;
function GetButtonVisible5: Boolean;
function GetButtonVisible6: Boolean;
function GetButtonVisible7: Boolean;
function GetButtonVisible8: Boolean;
function GetButtonVisible9: Boolean;
function GetButtonVisibleA: Boolean;
function GetButtonVisibleP: Boolean;
function GetButtonCaption0: String;
function GetButtonCaption1: String;
function GetButtonCaption2: String;
function GetButtonCaption3: String;
function GetButtonCaption4: String;
function GetButtonCaption5: String;
function GetButtonCaption6: String;
function GetButtonCaption7: String;
function GetButtonCaption8: String;
function GetButtonCaption9: String;
function GetButtonCaptionP: String;
function GetButtonCaptionA: String;
procedure CalcRects;
function CreateButton(Caption : String): TiButton;
procedure ButtonInvalidate(Sender : TObject);
procedure FontChange (Sender : TObject);
procedure ButtonClick (Sender : TObject);
procedure iMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure iMouseUp (Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
procedure iMouseMove( Shift: TShiftState; X, Y: Integer); override;
procedure iDoKillFocus; override;
procedure iPaintTo(Canvas: TCanvas); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Font : TFont read FFont write SetFont;
property OuterMargin : Double read FOuterMargin write SetOuterMargin;
property ButtonSpacing : Double read FButtonSpacing write SetButtonSpacing;
property ShowFocusRect : Boolean read FShowFocusRect write SetShowFocusRect default True;
property ButtonVisible0 : Boolean read GetButtonVisible0 write SetButtonVisible0 default True;
property ButtonVisible1 : Boolean read GetButtonVisible1 write SetButtonVisible1 default True;
property ButtonVisible2 : Boolean read GetButtonVisible2 write SetButtonVisible2 default True;
property ButtonVisible3 : Boolean read GetButtonVisible3 write SetButtonVisible3 default True;
property ButtonVisible4 : Boolean read GetButtonVisible4 write SetButtonVisible4 default True;
property ButtonVisible5 : Boolean read GetButtonVisible5 write SetButtonVisible5 default True;
property ButtonVisible6 : Boolean read GetButtonVisible6 write SetButtonVisible6 default True;
property ButtonVisible7 : Boolean read GetButtonVisible7 write SetButtonVisible7 default True;
property ButtonVisible8 : Boolean read GetButtonVisible8 write SetButtonVisible8 default True;
property ButtonVisible9 : Boolean read GetButtonVisible9 write SetButtonVisible9 default True;
property ButtonVisibleStar : Boolean read GetButtonVisibleA write SetButtonVisibleA default True;
property ButtonVisiblePound : Boolean read GetButtonVisibleP write SetButtonVisibleP default True;
property ButtonCaption0 : String read GetButtonCaption0 write SetButtonCaption0;
property ButtonCaption1 : String read GetButtonCaption1 write SetButtonCaption1;
property ButtonCaption2 : String read GetButtonCaption2 write SetButtonCaption2;
property ButtonCaption3 : String read GetButtonCaption3 write SetButtonCaption3;
property ButtonCaption4 : String read GetButtonCaption4 write SetButtonCaption4;
property ButtonCaption5 : String read GetButtonCaption5 write SetButtonCaption5;
property ButtonCaption6 : String read GetButtonCaption6 write SetButtonCaption6;
property ButtonCaption7 : String read GetButtonCaption7 write SetButtonCaption7;
property ButtonCaption8 : String read GetButtonCaption8 write SetButtonCaption8;
property ButtonCaption9 : String read GetButtonCaption9 write SetButtonCaption9;
property ButtonCaptionStar : String read GetButtonCaptionA write SetButtonCaptionA;
property ButtonCaptionPound : String read GetButtonCaptionP write SetButtonCaptionP;
property OnKeyClick : TiPhonePadKeyEvent read FOnKeyClick write FOnKeyClick;
property BackGroundColor;
property Transparent;
property BorderStyle;
property Width default 115;
property Height default 140;
end;
implementation
//****************************************************************************************************************************************************
constructor TiPhonePad.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width := 115;
Height := 140;
FButtonSpacing := 0.10;
FOuterMargin := 0.05;
FShowFocusRect := True;
FFont := TFont.Create; Font.OnChange := FontChange;
FButtonList := TStringList.Create;
FButton0:=CreateButton('0');
FButton1:=CreateButton('1');
FButton2:=CreateButton('2');
FButton3:=CreateButton('3');
FButton4:=CreateButton('4');
FButton5:=CreateButton('5');
FButton6:=CreateButton('6');
FButton7:=CreateButton('7');
FButton8:=CreateButton('8');
FButton9:=CreateButton('9');
FButtonA:=CreateButton('*');
FButtonP:=CreateButton('#');
end;
//****************************************************************************************************************************************************
destructor TiPhonePad.Destroy;
begin
FFont.Free;
FButton0.Free;
FButton1.Free;
FButton2.Free;
FButton3.Free;
FButton4.Free;
FButton5.Free;
FButton6.Free;
FButton7.Free;
FButton8.Free;
FButton9.Free;
FButtonA.Free;
FButtonP.Free;
FButtonList.Free;
inherited;
end;
//****************************************************************************************************************************************************
function TiPhonePad.CreateButton(Caption: String): TiButton;
begin
Result := TiButton.Create;
Result.Caption := Caption;
Result.OnInvalidate := ButtonInvalidate;
Result.OnClick := ButtonClick;
FButtonList.AddObject('', Result);
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.SetOuterMargin (const Value:Double );begin SetDoubleProperty (Value,FOuterMargin, irtInvalidate);end;
procedure TiPhonePad.SetButtonSpacing (const Value:Double );begin SetDoubleProperty (Value,FButtonSpacing, irtInvalidate);end;
procedure TiPhonePad.SetShowFocusRect (const Value:Boolean);begin SetBooleanProperty(Value,FShowFocusRect, irtInvalidate);end;
//****************************************************************************************************************************************************
procedure TiPhonePad.SetFont(const Value: TFont);begin FFont.Assign(Value);end;
//****************************************************************************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -