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);
總之,處理思路和流程不一樣了,要小心。
