delphi的自定义过程何时被调用?

来源:百度知道 编辑:UC知道 时间:2024/05/22 02:37:48
delphi的自定义过程何时被调用?如下例中的"procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;"这个过程

源程序:

unit Unit1;
interface
uses
Windows, Messages, Forms, Dialogs, Classes, Controls, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{热键标识ID}
id: Integer;
procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
{ Privat-Declarations}
public
{ Public-Declarations}
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}

{捕获热键消息}
procedure TForm1.WMHotKey (var Msg : TWMHotKey);
begin
if msg.HotKey = id then
ShowMessage(’Ctrl+Alt+R键被按下!’);
form1.Visible :=true;
end;
<

一般自己定义过程和函数都是为了把公用的代码封装到一起。像你所说“又如果我编了一个非事件处理过程,而且也未在任何过程的代码中引用它,请问这个过程是否永远不会被调用???? ” 那么你定义它的目的是什么呢 ?
自己定义的方法当然要自己安排它在哪里出现了。
比如 我自己定义一个函数 目标是把两个文本框的内容合成一个字符串
function hecheng(edit1:Tedit;edit2:Tedit):string;
begin
result:=edit1.text+edit2.text;
end;

当然你问的问题就来了 “也未在任何过程的代码中引用它,请问这个过程是否永远不会被调用???? ”。

当然你不调用他他就会在那永远呆着了

当你想把2个文本框内容输出的时候可以
showmessage(hecheng(edit1,edit2));

你调用他 他就激活了。

你也可以这样想 DELPHI里 有无限个过程和函数 他们都是定义好了放在库里面的 当你想用的时候就找出来使用。

你通过RegisterHotKey函数注册了热键
那么当此热键按下时,触发message过程