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

📄 inp.pas

📁 类似文明的游戏源代码。
💻 PAS
字号:
{$INCLUDE switches}

unit Inp;

interface

uses
  ScreenTools,

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  ButtonA, StdCtrls, ButtonB, ButtonBase;

type
  TInputDlg = class(TForm)
    OKBtn: TButtonA;
    EInput: TEdit;
    procedure OKBtnClick(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure EInputKeyPress(Sender: TObject; var Key: Char);
    procedure FormShow(Sender: TObject);
  public
    Tex: TTexture;
  private
    procedure OnEraseBkgnd(var m:TMessage); message WM_ERASEBKGND;
    procedure OnHitTest(var Msg:TMessage); message WM_NCHITTEST;
  end;

var
  InputDlg: TInputDlg;

implementation

{$R *.DFM}

procedure TInputDlg.FormCreate(Sender: TObject);
begin
Left:=(Screen.Width-InputDlg.Width) div 2;
Top:=Screen.Height-InputDlg.Height-113;
Canvas.Font.Assign(UniFont[ftNormal]);
Canvas.Brush.Style:=bsClear;
InitButtons(self);
end;

procedure TInputDlg.FormPaint(Sender: TObject);
begin
Fill(Canvas,3,3,ClientWidth-6,ClientHeight-6,0,0,Tex);
Frame(Canvas,0,0,ClientWidth-1,ClientHeight-1,0,0);
Frame(Canvas,1,1,ClientWidth-2,ClientHeight-2,Tex.clBevelLight,
  Tex.clBevelShade);
Frame(Canvas,2,2,ClientWidth-3,ClientHeight-3,Tex.clBevelLight,
  Tex.clBevelShade);
EditFrame(Canvas,EInput.BoundsRect,Tex);
BtnFrame(Canvas,OKBtn.BoundsRect,Tex);
RisedTextOut(Canvas,(ClientWidth-Canvas.TextWidth(Caption)) div 2,9,Caption);
{Corner(canvas,1,1,0,Tex);
Corner(canvas,ClientWidth-9,1,1,Tex);
Corner(canvas,1,ClientHeight-9,2,Tex);
Corner(canvas,ClientWidth-9,ClientHeight-9,3,Tex);}
end;

procedure TInputDlg.OnEraseBkgnd(var m:TMessage);
begin
end;

procedure TInputDlg.OnHitTest(var Msg:TMessage);
begin
if Msg.LParamHi>=Top+36 then Msg.result:=HTCLIENT
else Msg.result:=HTCAPTION
end;

procedure TInputDlg.OKBtnClick(Sender: TObject);
begin
if EInput.Text='' then ModalResult:=mrCancel
else ModalResult:=mrOK
end;

procedure TInputDlg.EInputKeyPress(Sender: TObject; var Key: Char);
begin
if (Key=#13) and (EInput.Text<>'') then begin Key:=#0 ; ModalResult:=mrOK end
else if Key=#27 then begin Key:=#0; ModalResult:=mrCancel end
end;

procedure TInputDlg.FormShow(Sender: TObject);
begin
OKBtn.Caption:=Phrases.Lookup('BTN_OK');
EInput.Font.Color:=Tex.clMark;
EInput.SelStart:=0;
EInput.SelLength:=Length(EInput.Text);
end;

end.

⌨️ 快捷键说明

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