主要是觉得在单输入的情况下, 原来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;
http://www.cnblogs.com/hs-kill/p/4707744.html