您的位置:程序门 -> delphi -> 网络通信/分布式开发



我在dll里想使用spcomm控件,所以加了个窗体,现写了个函数,可是该控件却不能执行,是什么原因呀?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


我在dll里想使用spcomm控件,所以加了个窗体,现写了个函数,可是该控件却不能执行,是什么原因呀?[已结贴,结贴人:yikeshu_888]
发表于:2007-02-28 16:00:06 楼主
dll的窗体上写的函数如下:
function   opencomm(scomm:string):longbool;
begin
      try
            comm1.commname:=scomm;
            comm1.startcomm;
            messagedlg( '打开 '+scomm+ '串口成功! ',mtinformation,[mbyes],0);
            result:=true;
      except
            messagedlg( '打开 '+scomm+ '串口时失败,可能该串口已被占用或不存在,请换另一个串口! ',mterror,[mbyes],0);
            result:=false;
      end;
end;

我用另一个程序来调用该dll的窗体上的上述函数时,却发现:
            comm1.commname:=scomm;
            comm1.startcomm;
这两条指令不能执行,请问是怎么原因呀?
调用的过程为:
procedure   tfcomm.btnopenclick(sender:   tobject);
begin
      opencomm( 'com1 ');
end;

请各位大虾指点,谢谢。    
发表于:2007-02-28 16:32:181楼 得分:20
在dll里想使用spcomm控件,所以加了个窗体???
需要吗???
发表于:2007-02-28 16:41:352楼 得分:0
是的,
withcsharp()   还有什么好的方法吗?
可以详细的说一下吗?
先谢了。
发表于:2007-02-28 16:42:183楼 得分:0
我就是先新建一个dll,然后在这个dll里手工添加了个窗体的。如下:
library   project1;
uses
    sysutils,
    classes,
    comm   in   'comm.pas '   {fcomm};

{$r   *.res}
exports
showmyform,opencomm;
begin
end.
我的函数opencomm就是放在comm.pas里的。
spcomm控件就是放在comm.dfm上面的。
发表于:2007-03-01 09:31:064楼 得分:0
这个问题搞定了。


快速检索

最新资讯
热门点击