uniGUI下的MessageDlg使用发生了变化,最大的特点是:
1、成为了uniGUIForm的成员函数;
2、变成过程(procedure)了,也就是没有返回值了,使得程序不再具有线程阻塞性。
3、增加了一个传入回调函数的参数:callBack : TuniDialogCallbackAnonProc,该类型定义在uniGUIDialogs单元中:
TuniDialogCallbackAnonProc = procedure (Sender : TComponent; Res : Integer);
其中Res等同于返回的结果,其对应关系是:
mrYES = IDYES
mrNo = IDNO
以此类推
由于MessageDlg不再具有线程阻塞性,所以必须在回调函数中对返回结果进行处理,这样一来处理流程就相对麻烦多了。原来的语句是:
if MessageDlg(...) = IDYES then
...
现在必须先定义回调函数
procedure MsgDlgCallBack(Sender: TComponent; Res: Integer);
begin
....
end;
再进行调用:
MessageDlg( ..., btnCancelDlgCallBack);
总之,处理思路和流程不一样了,要小心。