如何在 Delphi 中使用复选框?
Posted
技术标签:
【中文标题】如何在 Delphi 中使用复选框?【英文标题】:How to use a checkbox in Delphi? 【发布时间】:2009-03-19 05:59:37 【问题描述】:现在,我有代码:
begin
If odd(GetAsyncKeyState(VK_snapshot)) then
If CheckBox1.Checked then
begin
然后继续执行其余代码。这是正确的做法,还是我做错了?
【问题讨论】:
我想要它,如果用户选中复选框,它将继续执行该过程,但如果未选中复选框,它将继续执行不同的过程。 【参考方案1】:您的建议是确定是否选中复选框的完全合法的方法。这样做的代码可能看起来像
if checkBox.Checked then begin
//do whatever needed for checked checkbox
end
或者像这样
if checkBox.Checked then begin
//do whatever needed for checked checkbox
end else begin
//do whatever needed for unchecked checkbox
end
请记住,您从 Checked 属性中获取的值对应于您获取该值时复选框的状态。
【讨论】:
对于第二个,如果按下 Print Screen,我将如何实施检查?或者,如果可能的话,你能把那个人放进第二个代码吗? 是一样的。您有“KeyPressed”或类似事件的事件处理程序。你在里面检查它是否真的是按下的感兴趣的键。如果是,则调用读取复选框状态并采取相应措施的代码。 好吧,我有这个:begin if CheckBox1.Checked then begin If odd(GetAsyncKeyState(VK_snapshot)) Then begin //code here end else begin //不同的代码在这里 end;这似乎有效。【参考方案2】:if DT.FieldByName('name_of_checkbox').AsBoolean=True then begin ..... end;
// In this case dt is TADOquery that you had used in your program.
【讨论】:
【参考方案3】:由于您使用 2 个 if 语句,您也可以将它们合并为一个:
if odd(GetAsyncKeyState(VK_snapshot)) and CheckBox1.Checked then
begin
...
...
end;
if 语句的第二部分 (checkbox1.Checked) 只有在第一部分的计算结果为 True 时才会被计算。 (由于Delphi使用Short-circuit evaluation)
【讨论】:
请编辑这个 - Delphi 不一定必须使用短路评估,行为取决于$B
编译器指令或相应的命令行开关!以上是关于如何在 Delphi 中使用复选框?的主要内容,如果未能解决你的问题,请参考以下文章
delphi DBGridEH控件的checkbox如何判断是不是选中,求指导 !
请问在Delphi中利用DBGridEh加一列复选框时不能选择的问题怎么解决?
请问在Delphi中利用DBGridEh加一列复选框时不能选择的问题怎么解决? 我用的也是clientdateset,但选不了.