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口时 不能实现自动打开!何故?应该怎么改?呢 展开
我的代码如下,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口时 不能实现自动打开!何故?应该怎么改?呢 展开
展开全部
你的代码 一开始的判断不对吧
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;
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 关闭状态 那你的代码如何还会执行??
你还是单点跟踪一下么
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询