奇怪的是,第一次拨号是好的,但如果碰上没有拨号音的时候,想第二次拨号就出现内存出错。真是不明白?(100分)

  • 主题发起人 huangjiahan
  • 开始时间
H

huangjiahan

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tform1.dial(dialnum:String);
begin
comm1.writecommdata(pchar(dialnum), length(dialnum));
timer1.enabled := true;//有无应答定时器
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
dial(num1);//开始modem拨号
end;


procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
rstring:string;
begin
rstring := STRINGOFCHAR(' ', BUFFERLENGTH);
MOVE(BUFFER^, pchar(rstring)^, BUFFERLENGTH); //收串口字符;
if ansipos('NO DIALTONE', trim(rstring)) = 1 then
begin
Memo1.lines.add('没有拨号音。');
timer1.enabled := false;
exit;
end;
end;


奇怪的是,第一次拨号是好的,但如果碰上没有拨号音的时候,想第二次拨号就出现内存出错。真是不明白?
 
这样的程序流程有问题吗
 
顶部