一个修改过简化版的InputQuery(简单实用,用到了Canvas)
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个修改过简化版的InputQuery(简单实用,用到了Canvas)相关的知识,希望对你有一定的参考价值。
主要是觉得在单输入的情况下, 原来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
以上是关于一个修改过简化版的InputQuery(简单实用,用到了Canvas)的主要内容,如果未能解决你的问题,请参考以下文章