众所周知 messagebox 可以返回
if Application.MessageBox('xxxx?','提示信息',MB_YESNO)=6 then
然后执行后面的语句而showmessagepos可以将提示框的位置自由改变那有没有即可以改变提示框位置,又可以有messagebox提示框 if (按YES按钮后执行代码) THEN 的功能?
messagedlgposhelp可以吗?还是别的?
求
if Application.MessageBox('xxxx?','提示信息',MB_YESNO)=6 then
然后执行后面的语句而showmessagepos可以将提示框的位置自由改变那有没有即可以改变提示框位置,又可以有messagebox提示框 if (按YES按钮后执行代码) THEN 的功能?
messagedlgposhelp可以吗?还是别的?
求
不用绝望,为什么叫你用from代替,因为除了API,D里面的提示框差不多都是用from
ShowMessage调用ShowMessagePos
ShowMessagePos调用MessageDlgPos,
MessageDlgPos调用MessageDlgPosHelp
最终的MessageDlgPosHelp也是创建一个form再ShowModal而已
只不过他根据用户的参数使用了不同的按扭+图标所以,自己做一个也很方便,或者用现成的MessageDlgPos与MessageDlgPosHelp都行
SMsgDlgWarning = 'Warning';
SMsgDlgError = 'Error';
SMsgDlgInformation = 'Information';
SMsgDlgConfirm = 'Confirm';
SMsgDlgYes = '&Yes';
SMsgDlgNo = '&No';
SMsgDlgOK = 'OK';
SMsgDlgCancel = 'Cancel';
SMsgDlgHelp = '&Help';
SMsgDlgHelpNone = 'No help available';
SMsgDlgHelpHelp = 'Help';
SMsgDlgAbort = '&Abort';
SMsgDlgRetry = '&Retry';
SMsgDlgIgnore = '&Ignore';
SMsgDlgAll = '&All';
SMsgDlgNoToAll = 'N&o to All';
SMsgDlgYesToAll = 'Yes to &All';注意Build工程之前,做如下设置:菜单project -> options -> Compiler -> 勾选Use Debug DCUs。
F: TForm;
begin
F := CreateMessageDialog('xxxx?', mtConfirmation, [mbYes, mbNo], mbNo);
try
F.Caption := '提示信息';
TButton(F.FindChildControl('Yes')).Caption := '是(&Y)';
TButton(F.FindChildControl('No')).Caption := '否(&N)';
F.Left := 1;
F.Top := 100;
case F.ShowModal() of
mrYes: ShowMessage('Yes clicked');
mrNo: ShowMessage('No clicked');
mrCancel: ShowMessage('close');
end;
finally
F.Free
end;
end;