关于delphi的过程处理(急)
来源:百度知道 编辑:UC知道 时间:2024/05/09 15:54:04
一个在单击事件里面能够执行的代码,但是定义成过程就不行,这是怎么回事?请高手帮忙。。
全部代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,mmsystem, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
procedure opendvd; //打开光驱
begin
try
mciSendString('Set cdaudio door open wait', nil, 0, handle); //这句过不了
except
end;
{$R *.dfm}
//这里面的能够正常执行
procedure TForm1.Button1Click(Sender: TObject);
begin
try
mciSendString('Set cdaudio door open wait', nil, 0, handle);
except
end;
end;
end.
全部代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,mmsystem, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
procedure opendvd; //打开光驱
begin
try
mciSendString('Set cdaudio door open wait', nil, 0, handle); //这句过不了
except
end;
{$R *.dfm}
//这里面的能够正常执行
procedure TForm1.Button1Click(Sender: TObject);
begin
try
mciSendString('Set cdaudio door open wait', nil, 0, handle);
except
end;
end;
end.
mciSendString('Set cdaudio door open wait', nil, 0, handle); //这句过不了
改为:
mciSendString('Set cdaudio door open wait', nil, 0, NULL);
这样就可以了。因为handle在事件里面是FORM定义的,在过程里面就会提示变量没有定义的错误,换为常量NULL即可。