> Short story: the patch is attached, it should help:)
Better take this patch version (spaces, not tabs:). Michalis
--- common/dialogsx.pas.orig 2016-02-06 15:20:36.000000000 +0100 +++ common/dialogsx.pas 2016-02-06 15:43:30.000000000 +0100 @@ -66,6 +66,36 @@ end; {$ENDIF} +{ Convert our TMsgDlgButtons type to Dialogs.TMsgDlgButtons type + in a type-safe manner. Do not assume that memory layout matches between + - TMsgDlgButtons and Dialogs.TMsgDlgButtons, or + - TMsgDlgBtn and Dialogs.TMsgDlgBtn. +} +function MsgDlgButtonsConvertToStandard( + const Buttons: TMsgDlgButtons): Dialogs.TMsgDlgButtons; +var + B: TMsgDlgBtn; +begin + Result := []; + for B := Low(B) to High(B) do + if B in Buttons then + { convert our TMsgDlgBtn to Dialogs.TMsgDlgBtn type } + case B of + mbYes : Include(Result, Dialogs.mbYes ); + mbNo : Include(Result, Dialogs.mbNo ); + mbOK : Include(Result, Dialogs.mbOK ); + mbCancel : Include(Result, Dialogs.mbCancel ); + mbAbort : Include(Result, Dialogs.mbAbort ); + mbRetry : Include(Result, Dialogs.mbRetry ); + mbIgnore : Include(Result, Dialogs.mbIgnore ); + mbAll : Include(Result, Dialogs.mbAll ); + mbNoToAll : Include(Result, Dialogs.mbNoToAll ); + mbYesToAll: Include(Result, Dialogs.mbYesToAll); + mbHelp : Include(Result, Dialogs.mbHelp ); + else raise Exception.Create('Unsupported TMsgDlgBtn value'); + end; +end; + function MsgDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; {$IFDEF GUI} var @@ -74,7 +104,7 @@ begin lDlgType := Dialogs.TMsgDlgType(DlgType); - lButtons:= Dialogs.TMsgDlgButtons(Buttons); + lButtons:= MsgDlgButtonsConvertToStandard(Buttons); result := MessageDlg(Msg, lDlgType, lButtons,HelpCtx); {$ELSE} begin