zoukankan      html  css  js  c++  java
  • 一个修改过简化版的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;
  • 相关阅读:
    ReentrantLock重入锁
    Java对象序列化和反序列
    echarts踩坑笔记
    金融风控之贷款违约预测笔记
    go安装模块
    vasp计算轨道吸附
    html
    css/js 小技巧
    python 调用父类方法:super && 直接使用父类名
    python 多线程
  • 原文地址:https://www.cnblogs.com/lzl_17948876/p/4707744.html
Copyright © 2011-2022 走看看