delphi中的showmessage函数是调用的哪个API函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的showmessage函数是调用的哪个API函数相关的知识,希望对你有一定的参考价值。

如题,请说详细点儿!!

ShowMessage并不是调用的API而是Delphi自己的VCL类库ShowMessage函数在Dialogs单元里面VCL的函数声明是procedure ShowMessage(const Msg: string);
begin
ShowMessagePos(Msg, -1, -1);
end;只是调用了VCL类库的ShowMessagePos函数而已
参考技术A SHOWMESSAGE是用的VCL中的自定义函数。不是用的APIapplication的messagebox倒是用的API函数。。。如果你要一个自己的对话框,你可以设计一个窗体代替了。。。只要是模态显示就行

[Delphi]过程Procedure动态调用

过程也可以像通用变量一样声明、调用

 

procedure HelloWorld;

begin  

ShowMessage(‘HI‘);

end;

procedure HelloWorld2(a:String);

begin  

ShowMessage(‘HI‘);

end;

 

procedure TFormSplash.FormCreate(Sender: TObject);

var 

    myproc:Procedure;

   myproc2:Procedure(a:String);

begin   

    myProc:=HelloWorld;

   if Assigned(myProc) then  myProc;

   myproc2:= HelloWorld2;

   if Assigned(myproc2) then  myproc2(‘‘);

 

也可以这样定义

 var 

    myproc:Procedure=HelloWorld;

   myproc2:Procedure(a:String)=HelloWorld2;

 

参数类型不同或顺序不同会提示

  E2009 Incompatible types: ‘Parameter lists differ’

直接赋值 对象中的过程或函数将出错

 E2009 Incompatible types: ‘regular procedure and method pointer’

需要在Type里声明类型

type
  TMethod = procedure of object;
  TFunc = function: integer of object;
  TNotifyEvent = procedure(Sender: TObject) of object;
 

 

以上是关于delphi中的showmessage函数是调用的哪个API函数的主要内容,如果未能解决你的问题,请参考以下文章

delphi里application.MessageBox()与showmessage()有啥区别?

深入了解Delphi 7中的四种消息框

[Delphi]过程Procedure动态调用

delphi调试技巧

Delphi berlin ShowMessage的改进与使用

delphi 如何检查指定服务的状态