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);

总之,处理思路和流程不一样了,要小心。

05-07 15:19