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

📄 iphonepad.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{       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 + -