一个修改过简化版的InputQuery

主要是觉得在单输入的情况下, 原来InputQuery输入框左边的文本太难看了......

 

  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;
        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;

 

posted on 2015-08-06 13:27  黑暗煎饼果子  阅读(800)  评论(0编辑  收藏  举报