- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 简化版的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;
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;