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

📄 u_frmrjp.pas

📁 触摸屏软键盘模块(DELPHI组件
💻 PAS
字号:
unit U_FrmRJP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Buttons, strutils;

procedure Bind_RJP(sender: Tedit);
procedure Show_RJP(sender: Tedit);
type
  TfrmRJP = class(TForm)
    Image1: TImage;
    SpeedButton1: TSpeedButton;
    pubButton: TSpeedButton;
    Bevel1: TBevel;
    btnDel: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    btnEnter: TSpeedButton;
    SpeedButton55: TSpeedButton;
    btnCancel: TSpeedButton;
    btnClear: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton11: TSpeedButton;
    SpeedButton14: TSpeedButton;
    SpeedButton15: TSpeedButton;
    SpeedButton16: TSpeedButton;
    SpeedButton17: TSpeedButton;
    SpeedButton18: TSpeedButton;
    SpeedButton19: TSpeedButton;
    SpeedButton20: TSpeedButton;
    SpeedButton21: TSpeedButton;
    SpeedButton22: TSpeedButton;
    SpeedButton23: TSpeedButton;
    SpeedButton24: TSpeedButton;
    SpeedButton25: TSpeedButton;
    SpeedButton26: TSpeedButton;
    SpeedButton27: TSpeedButton;
    SpeedButton28: TSpeedButton;
    SpeedButton29: TSpeedButton;
    SpeedButton30: TSpeedButton;
    SpeedButton31: TSpeedButton;
    SpeedButton32: TSpeedButton;
    SpeedButton33: TSpeedButton;
    SpeedButton34: TSpeedButton;
    SpeedButton35: TSpeedButton;
    SpeedButton36: TSpeedButton;
    SpeedButton37: TSpeedButton;
    SpeedButton38: TSpeedButton;
    SpeedButton39: TSpeedButton;
    SpeedButton40: TSpeedButton;

    procedure pubButtonClick(Sender: TObject);
    procedure BindTxtExit(Sender: TObject);
    procedure BindTxtEnter(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
  private
    { Private declarations }
  public
    bindEditCtl: Tedit;
    { Public declarations }
  end;

var
  frmRJP: TfrmRJP;

implementation

{$R *.dfm}


procedure Show_RJP(sender: Tedit);
begin

  if not (Assigned(sender)) then
    exit;

  if not Assigned (sender.OnEnter) then
    exit;

  sender.OnEnter(sender);

end;

procedure Bind_RJP(sender: Tedit);
var
  _frmTmpRJP: TfrmRJP;
begin

  if not (Assigned(sender)) then
    exit;

  _frmTmpRJP := TfrmRJP.Create(nil);
  _frmTmpRJP.bindEditCtl := sender;

  sender.OnEnter := _frmTmpRJP.BindTxtEnter;
  sender.OnExit := _frmTmpRJP.BindTxtExit;
  sender.OnDblClick := _frmTmpRJP.BindTxtEnter;

end;

procedure TfrmRJP.BindTxtExit(Sender: TObject);
begin
  self.Hide();
end;

procedure TfrmRJP.BindTxtEnter(Sender: TObject);
var
  edit: Tedit;
  pt: TPoint;
  x, y: integer;
begin
  if not (Assigned(sender)) then
    exit;

  edit := sender as Tedit;

  pt := edit.ClientToScreen(Point(0, edit.Height));

  if  (pt.Y+self.ClientHeight)> screen.Height then
  begin
      self.top := pt.Y-self.Height-edit.Height;
  end
  else
  begin
      self.top := pt.Y;
  end;


  if (pt.X+self.ClientWidth)> screen.Width then
  begin
    self.Left :=  screen.Width-self.ClientWidth;
  end
  else
  begin
   self.Left := pt.X;
  end;


  self.Show();
end;




procedure TfrmRJP.pubButtonClick(Sender: TObject);
var
  _ctl: TSpeedButton;
  _intTmp: integer;
  _strTmp:string;
  _strTmpValue:string;
begin
  try

    _ctl := sender as TSpeedButton;

    if not _ctl.Visible then
      exit;

    if _ctl=self.btnEnter then
    begin
      self.Close();
      self.bindEditCtl.SelLength:=0;
      exit;
    end;

    if _ctl=self.btnCancel then
    begin
      self.Close();
      self.bindEditCtl.SelLength:=0;
      exit;
    end;

    if _ctl=self.btnDel then
    begin
      _intTmp := length(self.bindEditCtl.Text);
      if (_intTmp > 0) then
        self.bindEditCtl.Text := LeftStr(self.bindEditCtl.Text, _intTmp - 1);


      self.bindEditCtl.SelStart := length(self.bindEditCtl.Text);
      self.bindEditCtl.Perform(EM_SCROLLCARET, 0, 0);

      exit;
    end;

    if _ctl=self.btnClear then
    begin

       self.bindEditCtl.Text := '';
      exit;
    end;

    if _ctl.Hint='TAB' then
       _ctl.Hint:='        ';

    _strTmp:=_ctl.Hint;
    _strTmpValue:= _strTmp;

    self.bindEditCtl.Text := self.bindEditCtl.Text + _strTmpValue;
    self.bindEditCtl.SelStart := length(self.bindEditCtl.Text);
    self.bindEditCtl.Perform(EM_SCROLLCARET, 0, 0);

     self.bindEditCtl.HideSelection:=false;
    self.bindEditCtl.SelectAll;


  except
  end;


end;

procedure TfrmRJP.Image1Click(Sender: TObject);
begin
  self.Close();
    self.bindEditCtl.SelLength:=0;
    
end;

procedure TfrmRJP.FormDeactivate(Sender: TObject);
begin
self.Close();
  self.bindEditCtl.SelLength:=0;
    

end;

end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -