一个combobox选项的小问题

秋天之落叶 2019-05-13 06:07:40
combobox控件选择一个项可以判断,如果什么也没选,如何判断?

比如,在combobox的下拉选项有1和2,在SELECT事件中:

if combobox.text='1' then
edit.text:='1'
else if combobox.text='2' then
edit.text:='2'
else
edit.text:='';

我想实现当我选了1显示1后,再选空时edit.text:='',上边的判断实现不了?判断combobox.text=''和itemindex<0也不行,如何解决?
选1显示1,选2显示2,什么也不选显示空,且每次选择都实时变化。
我不要在combobox离开事件中实现。
...全文
1279 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2019-05-31
  • 打赏
  • 举报
回复
引用 27 楼 mmm52013 的回复:
楼主会调Jcombobox样式吗

没用过,不会
mmm52013 2019-05-28
  • 打赏
  • 举报
回复
楼主会调Jcombobox样式吗
秋天之落叶 2019-05-27
  • 打赏
  • 举报
回复
引用 25 楼 萱爸比 的回复:
第三项输入几个空格!!

除非你的选项中有这个空格(一个就行),否则输几个都不能判断
萱爸比 2019-05-27
  • 打赏
  • 举报
回复
第三项输入几个空格!!
住手丶让我来 2019-05-16
  • 打赏
  • 举报
回复
打断点调试,看看选择空的时候,combobox.text的值是多少就可以做判断了
小小新手 2019-05-16
  • 打赏
  • 举报
回复
我想你应该是要先确认需求,然后在想怎么实现
  • 打赏
  • 举报
回复
我一般都直接给个全部的下拉选项 然后让它=""
CACACACACA 2019-05-14
  • 打赏
  • 举报
回复
拦截消息吧。如果没点下拉的list或按了esc键等。因为这点事感觉不值当。
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 11 楼 无聊的猪 的回复:
[quote=引用 8 楼 秋天之落叶 的回复:]
[quote=引用 6 楼 无聊的猪 的回复:]
如果是清空内容的话,要在Change事件中处理

选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。[/quote]
select事件与change事件结合使用啊 [/quote]
我试了一下,不录入只选择空(不是空项目,是不选择)还是判断不了
无聊的猪 2019-05-14
  • 打赏
  • 举报
回复
引用 8 楼 秋天之落叶 的回复:
[quote=引用 6 楼 无聊的猪 的回复:] 如果是清空内容的话,要在Change事件中处理
选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。[/quote] select事件与change事件结合使用啊
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 9 楼 victor_yang 的回复:
我的做法是:
1、初始时Items.clear,马上增加一个''
2、增加选项
3、判断选项时就判断text是不是''就好
当然,在某些情况下,你也可以不加'',加'全部'也行

看来确实是没有不选择项的状态判断了。
OnSelect事件后再加一个OnNotSelect事件就好了,哈哈哈
好好的行里加一个''看着有点别扭,嘿嘿
victor_yang 2019-05-14
  • 打赏
  • 举报
回复
我的做法是: 1、初始时Items.clear,马上增加一个'' 2、增加选项 3、判断选项时就判断text是不是''就好 当然,在某些情况下,你也可以不加'',加'全部'也行
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 6 楼 无聊的猪 的回复:
如果是清空内容的话,要在Change事件中处理

选1显示1,再不选任何项清空,change里面实现不了,change好像是录入内容改变时的事件。
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 4 楼 doloopcn 的回复:
combox为List状态,实现不了。

建议增加空白选项

也就是说只能判断选择一个项状态,不选择是没有办法判断的?
增加一个空行总觉得不是那么回事,唉
无聊的猪 2019-05-14
  • 打赏
  • 举报
回复
如果是清空内容的话,要在Change事件中处理
别打酱油 2019-05-14
  • 打赏
  • 举报
回复
引用 4 楼 doloopcn 的回复:
combox为List状态,实现不了。

建议增加空白选项

刚刚试过,加入'',1,2,这3个选项,选空的时候可以实现楼主的效果
doloopcn 2019-05-14
  • 打赏
  • 举报
回复
combox为List状态,实现不了。

建议增加空白选项
  • 打赏
  • 举报
回复
就用TComboBox.Tag即可,如果你没做他用的话
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 18 楼 早打大打打核战争 的回复:
[quote=引用 16 楼 秋天之落叶 的回复:]
[quote=引用 15 楼 早打大打打核战争 的回复:]
你的“不选”是什么概念,点开下拉列表框什么都没选就收起来了?

是的,然后下拉框的内容是空的,和初始状态一样。[/quote]

设置一个标志,比如叫UserSelected,在OnSelect事件处理中设置该标志为true,OnDropDown事件处理中设置该标志为false,然后判断该标志即可
[/quote]
我试一下,感觉有点复杂,几十个下拉,都要一一改过。
秋天之落叶 2019-05-14
  • 打赏
  • 举报
回复
引用 17 楼 victor_yang 的回复:
如果你想回到初始状态就加个'',onchange事件要小心,当你在给combobox加item时,有可能会触发onchange事件

不费劲了,还是加一个''吧,不好看就不好看吧,简单
加载更多回复(8)

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧