Windows API - MessageBox

if MessageBox(handle,'確定要刪除當前記錄?','確定',MB_IconQuestion+MB_YesNo)=IDNO then
  Abort;
 
 
 
TApplication类中封装的MessageBox是直接调用Windows API的,两者的差别就是Tapplication省去了一个从String转到PChar的过程。这给调用者带来了一定的方便。
以下是WINDOWS API HELP中MessageBox的解释。
如果追求是一些个性化的东西还可以使用
MessageBox在WINDOWS API中的函数原型如下:
int MessageBox(

    HWND hWnd, // handle of owner window
    LPCTSTR lpText, // address of text in message box
    LPCTSTR lpCaption, // address of title of message box  
    UINT uType // style of message box
   );
Handle参数是显示时基于的窗口句柄,如果为0则自己新开一个窗口。一般如果无法确定当前窗口
的句则需要调用GetForegroundWindow函数返回。
其uTupe参数一般有如下几个。
MB_ABORTRETRYIGNORE
MB_OK
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
另外在MessageBox中还可以显示特定的图标。
MB_ICONEXCLAMATION,
MB_ICONWARNING
MB_ICONINFORMATION
MB_ICONASTERISK
MB_ICONQUESTION
MB_ICONSTOP,
MB_ICONERROR,
MB_ICONHAND
至于返回结果,只不过是把uTupe参数中的“MB”改成了“ID”,以下是一段演示代码。
function TForm1.Demo(Sender:TObject):String;
begin
 case MessageBox(Handle,'您是程序员吗?','提示信息',MB_YESNOCANCEL+MB_ICONQUESTION
) of
  case ID_YES:Result:='是';
  case ID_NO:Result:='不是';
  case ID_CANCEL:Result:='程序员是什么工作?';
 end;
end;
  
 
 
 
function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean;
 
function InputQuery(const ACaption, APrompt: WideString; var Value: WideString): Boolean; overload;
function InputQuery(const ACaption, APrompt: WideString; var Value: string): Boolean; overload;
function InputQuery(const ACaption, APrompt: WideString; var Value: Double, Min: Double = Low(Integer); Max: Double = High(Integer); Decimals: Integer = 1): Boolean; overload;
function InputQuery(const ACaption, APrompt: WideString; var Value: Integer, Min: Integer = Low(Integer); Max: Integer = High(Integer); Increment: Integer = 1): Boolean; overload;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值