delphi combobox1自动选择串口并打开怎么实现?

combobox1菜单里有5个串口项目,com1-com5.我想实现无论当前是哪个com口,无论是打开状态还是关闭状态。从combobox1的下拉列表中选择某个com口,... combobox1 菜单里有5个串口项目,com1-com5.我想实现无论当前是哪个com口,无论是打开状态还是关闭状态。从combobox1的下拉列表中选择某个com口,该com口就自动打开了,请问各位怎么实现呢 ?是在combobox 的onchange 还是onselect 编写代码?
我的代码如下,if mscomm1.portopen=true then
begin//on select
mscomm1.portopen:=false;
if combobox1.Text='com1' then
mscomm1.CommPort:=1
else if combobox1.Text='com2' then
mscomm1.CommPort:=2
else if combobox1.Text='com3' then
mscomm1.CommPort:=3
else if combobox1.Text='com4' then
mscomm1.CommPort:=4
else if combobox1.Text='com5' then
mscomm1.CommPort:=5;
mscomm1.portopen:=true;
end;但改变com口时 不能实现自动打开!何故?应该怎么改?呢
展开
 我来答
sirouszlh
2013-08-27 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:637万
展开全部
你的代码 一开始的判断不对吧
if mscomm1.portopen=true then

一开始portopen=false 所以 你的条件永远不满足

combobox 我向来在onchange里处理事件

if mscomm1.portopen then
mscomm1.portopen:=false;

if combobox1.Text='com1' then
mscomm1.CommPort:=1
else if combobox1.Text='com2' then
mscomm1.CommPort:=2
else if combobox1.Text='com3' then
mscomm1.CommPort:=3
else if combobox1.Text='com4' then
mscomm1.CommPort:=4
else if combobox1.Text='com5' then
mscomm1.CommPort:=5;
mscomm1.portopen:=true;
更多追问追答
追问
你看错了 我在mscomm1.portopen:=false 上面还有一句呢 if mscomm1.portopen=true then
begin//on select
mscomm1.portopen:=false;
和你的代码一样的 !这样假设 我目前是COM1 关闭状态 ,我要改成com2 是能换成com2了,但不会自动打开 咋回事呢?
追答
我没看错!  你的代码是有问题
和我的代码不一样
if mscomm1.portopen=true then
begin//on select
mscomm1.portopen:=false;

是需要mscomm1.portopen=true 才能往下执行

假设你目前是COM1 关闭状态 那你的代码如何还会执行??

你还是单点跟踪一下么
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式