RSS订阅 | 匿名投稿
您的位置:网站首页 > 程序 > 正文

delphi 简化版的InputQuery 中文版输入对话框

作者:admin 来源: 日期:2018/3/1 19:23:44 人气: 标签:

function _InputQuery(const ACaption: string; const APrompt: string; var AValue: string): Boolean;
  var
    nForm: TForm;
    nEdit: TEdit;
    nTop: Integer;
    nTextMetric: TTextMetric;
  begin
    Result := False;
    nForm := TForm.CreateNew(Application);
    with nForm do
    try
      Canvas.Font := Font;
      BorderStyle := bsDialog;
      Caption := ACaption;
      ClientWidth := 256;
      PopupMode := pmAuto;
      Position := poScreenCenter;
      nEdit := nil;

      GetTextMetrics(Canvas.Handle, nTextMetric);

      nTop := nTextMetric.tmAscent + 1;

      nEdit := TEdit.Create(nForm);
      with nEdit do
      begin
        Parent := nForm;
        Left := 8;
        Top := nTop;
        Width := nForm.ClientWidth - 16;
        MaxLength := 255;
        PasswordChar:='*'; // www.delphitop.com 改进
        Text := AValue;
        SelectAll;
        Inc(nTop, Height + 4);
      end;

      if APrompt <> '' then
      begin
        with TLabel.Create(nForm) do
        begin
          Parent := nForm;
          AutoSize := False;
          Caption := APrompt;
          Font.Color := clGrayText;
          Left := 8;
          Top := nTop;
          Width := nForm.ClientWidth - 16;
          WordWrap := False;
          Inc(nTop, Height + 15);
        end;
      end;

      with TButton.Create(nForm) do
      begin
        Parent := nForm;
        Caption := '确定';
        ModalResult := mrOk;
        Default := True;
        SetBounds(nForm.ClientWidth - Width * 2 - 8 - 4, nTop, Width, Height);
      end;
      with TButton.Create(nForm) do
      begin
        Parent := nForm;
        Caption := '取消';
        ModalResult := mrCancel;
        Cancel := True;
        SetBounds(nForm.ClientWidth - Width - 8, nTop, Width, Height);
        nForm.ClientHeight := Top + Height + nTextMetric.tmAscent;
      end;
      if ShowModal = mrOk then
      begin
        AValue := nEdit.Text;
        Result := True;
      end;
    finally
      nForm.Free;
    end;
  end;

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料