function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryFunc: TInputCloseQueryFunc = nil): Boolean; overload; function InputQuery(const ACaption: string; const APrompts: array of string; var AValues: array of string; CloseQueryEvent: TInputCloseQueryEvent; Context: TObject = nil): Boolean; overload; function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean; overload; 不明白区别: TInputCloseQueryEvent = procedure (Sender: TObject; const Values: array of string; var CanClose: Boolean) of object; TInputCloseQueryFunc = reference to function (const Values: array of string): Boolean; 测试 procedure TForm1.btn1Click(Sender: TObject); var adc :array[0..2] of string; begin InputQuery('123',['gdag','dfad','fdaf'],adc) end;