Delphi 中,InputQuery 函数的妙用

1、标准写法(单个):

procedure TForm7.Button1Click(Sender: TObject);
var  strResult:string;
begin
if InputQuery('请输入密码:', '密码:', strResult) then begin
    caption:=  strResult;
 end;

end;

 

2、扩展写法(多个):

procedure TForm7.FormCreate(Sender: TObject);
var strResult: array of string ;
begin
setLength(strResult,2);
if InputQuery('请输入密码:', ['密码:', '重复密码:'], strResult) then begin 
   caption:=  strResult[0];

end;
end;

 

3、密码写法(多个):

procedure TForm7.FormCreate(Sender: TObject);
var strResult: array of string ;
begin
setLength(strResult,2);
if InputQuery('请输入密码:', [Chr(9) + '密码:', Chr(9) + '重复密码:'], strResult) then begin
   caption:=  strResult[0];

end;
end;

 


4InputQuery 的高级用法(可用于替代密码修改窗口)

procedure ShowErrorMsg(Amsg:string);
begin
  Application.MessageBox(PChar(Amsg), 'error', MB_OK);
  abort;
end;

procedure TFrm_Main.Btn_1Click(Sender: TObject);
var
  ss:array of string;
begin
  SetLength(ss,3);
  if InputQuery('密码修改',[Chr(0)+'旧 密 码',Chr(0)+'新 密 码',Chr(0)+'确认密码'],ss,
    function (const Values: array of string): Boolean
    begin
      Result := False;
      if Values[0]<>'123' then ShowErrorMsg('旧密码不正确');
      if Values[1]<>Values[2] then ShowErrorMsg('两次密码不同');
      Result := True;
     end)
  then begin
    ShowMessage('请牢记您的新密码:'+SS[1]);
  end;
end;

 

原文地址:https://www.cnblogs.com/tulater/p/14718781.html