问个函数messagedlg的问题。 ( 积分: 5 )

  • 主题发起人 主题发起人 mill666
  • 开始时间 开始时间
M

mill666

Unregistered / Unconfirmed
GUEST, unregistred user!
uses
Qdialogs

procedure TForm1.Button1Click(Sender: TObject);
var
bitmap:Tbitmap;
begin
// function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;

bitmap:=Tbitmap.Create;
bitmap.LoadFromFile('I:/winefip2/image/°ïÖú.bmp');

messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,bitmap);
end;
编译出现:
[Error] Unit1.pas(35): There is no overloaded version of 'MessageDlg' that can be called with these arguments
但是如果改成:
messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,nil);
却没有什么问题。

请问这是为什么?我已经uses 了Qdialogs了。uses dialogs肯定是不行的吧。
 
uses
Qdialogs

procedure TForm1.Button1Click(Sender: TObject);
var
bitmap:Tbitmap;
begin
// function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;

bitmap:=Tbitmap.Create;
bitmap.LoadFromFile('I:/winefip2/image/°ïÖú.bmp');

messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,bitmap);
end;
编译出现:
[Error] Unit1.pas(35): There is no overloaded version of 'MessageDlg' that can be called with these arguments
但是如果改成:
messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,nil);
却没有什么问题。

请问这是为什么?我已经uses 了Qdialogs了。uses dialogs肯定是不行的吧。
 
那个0代表参数HelpCtx啊,你调用的时候一定要给足参数!
 
你不明白作物提示什么意思吗?是说你穿的参数有问题,不支持。
 
去掉overload试试
 
各位大侠,你们看清楚了,我调用的这个函数原型可是如下:
function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload;
这可是delphi的帮助文件里面说明的,在Qdialogs单元里面的。
zqw0117大侠说俺的参数不足,那你说俺少了哪个参数啊??
radtek大侠说俺的参数有问题,可问题再哪里啊??编译不过去,那肯定是有问题的。
可是关键是如果我把最后的一个参数bitmap改为nil,怎么就没有问题呢??
 
楼主,你数数啊,一共7个参数,最后两个参数有默认值,可以省略,七个参数分别是:
Caption: WideString
const Msg: WideString
DlgType: TMsgDlgType
Buttons: TMsgDlgButtons
HelpCtx: Longint
DefaultBtn: TMsgDlgBtn = mbNone
Bitmap: TBitmap = nil
你自己检查下,你给的参数对不对,是不是都是顺序正确的!
你的代码如下:
messagedlg('****',
'sex',
mtCustom,
[mbOk],
0,
mbOk,
bitmap
);
看起来好像是对的,但是我发现
uses
Qdialogs
你uses了QDialogs,这个是cxl的库啊,你要引用不带Q的单元(Dialogs)还有,TBitmap在哪个单元,你也要uses进来(我记得好像是Graphic单元)
 
Qdialogs.messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,bitmap);
 
loskiller大侠,好像不行哟,不知道你有没有试过??
 
procedure TForm1.Button1Click(Sender: TObject);
var
bitmap:QGraphics.Tbitmap;
begin
bitmap:=Tbitmap.Create;
bitmap.LoadFromFile('c:/1.bmp');
QDialogs.messagedlg('****','sex',mtCustom,[mbOk],0,mbOk,bitmap);
end;
 
messagedlg is in Dialog unit.
 
后退
顶部