5

现在,我有代码:

begin
If odd(GetAsyncKeyState(VK_snapshot)) then
If CheckBox1.Checked then
begin

然后继续执行其余的代码。这是正确的做法,还是我做错了?

4

3 回答 3

12

您建议的是确定是否选中复选框的完全合法的方法。这样做的代码可能看起来像

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 属性获得的值对应于您获得该值时复选框的状态。

于 2009-03-19T06:14:02.497 回答
0
if DT.FieldByName('name_of_checkbox').AsBoolean=True then begin ..... end;
// In this case dt is TADOquery that you had used in your program.
于 2009-11-30T15:54:37.303 回答
-1

由于您使用的是 2 个 if 语句,因此您也可以将它们合并为一个:

if odd(GetAsyncKeyState(VK_snapshot)) and CheckBox1.Checked then
begin
  ...
  ...
end;

if 语句的第二部分 (checkbox1.Checked) 仅在第一个评估为 True 时才被评估。(因为 Delphi 使用短路评估

于 2009-03-19T11:25:20.657 回答