自定义类代码如下:
type
TModem = class(TObject)
private
fMscomm: TMSComm;
public
constructor Create(aMSComm: TMSComm);
destructor Destroy;override;
end;constructor TModem.Create(aMSComm: TMSComm);
begin
fMscomm := aMSComm;
inherited Create;
end;
.......调用模块代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, M22Modem, StdCtrls, OleCtrls, MSCommLib_TLB;type
TForm1 = class(TForm)
Button1: TButton;
MSComm1: TMSComm;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private { Private declarations }
faModem: TModem;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
faModem.Create(MSComm1);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
faModem.Destroy;
end;end.在执行到fMscomm := aMSComm; 时出错提示信息:'Access violation at address 00458984 in module 'project.exe'.write of address 0000000C'
type
TModem = class(TObject)
private
fMscomm: TMSComm;
public
constructor Create(aMSComm: TMSComm);
destructor Destroy;override;
end;constructor TModem.Create(aMSComm: TMSComm);
begin
fMscomm := aMSComm;
inherited Create;
end;
.......调用模块代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, M22Modem, StdCtrls, OleCtrls, MSCommLib_TLB;type
TForm1 = class(TForm)
Button1: TButton;
MSComm1: TMSComm;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private { Private declarations }
faModem: TModem;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
faModem.Create(MSComm1);
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
faModem.Destroy;
end;end.在执行到fMscomm := aMSComm; 时出错提示信息:'Access violation at address 00458984 in module 'project.exe'.write of address 0000000C'
解决方案 »
- 如何将excel内容导入oracle,三层环境下
- 用delphi在image上划线原点的问题
- 如何把字符串中汉字变成Unicode,如"mysring__数据软件" 变成 "mysring__#25968#25454#37319#36719"
- ---------------也许不该放到这里,但我真的需要直接读取硬盘上的数据块--------
- 在什么事件中获取dbgrid的一个数据项.
- 在Delphi中如何把一个整型数转换成十六进制的字符串?请进
- 如何入门
- 菜鸟问题:怎么让主表单出现之前出现其他表单?
- 链表互斥操作
- 有没有好用的Delphi7 DBRichEdit控件,可以插入图表图形的?
- 200分关于将Memo的内容保存到数据库的问题。
- 困惑的提示
fMscomm := aMSComm;
begin
faModem:=TModem.Create(MSComm1);//这里的MSComm1初始化了吗。
end;
constructor TModem.Create(aMSComm: TMSComm);
begin
fMscomm := aMSComm;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
faModem.Free;
end;
faModem := TModem.Create(Mscomm1);
就好了 为什么会这样呢?
begin
MSComm1:=TMSComm.Create;
faModem.Create(MSComm1);
end;