现在,我有代码:
begin
If odd(GetAsyncKeyState(VK_snapshot)) then
If CheckBox1.Checked then
begin
然后继续执行其余的代码。这是正确的做法,还是我做错了?
您建议的是确定是否选中复选框的完全合法的方法。这样做的代码可能看起来像
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 属性获得的值对应于您获得该值时复选框的状态。
if DT.FieldByName('name_of_checkbox').AsBoolean=True then begin ..... end;
// In this case dt is TADOquery that you had used in your program.
由于您使用的是 2 个 if 语句,因此您也可以将它们合并为一个:
if odd(GetAsyncKeyState(VK_snapshot)) and CheckBox1.Checked then
begin
...
...
end;
if 语句的第二部分 (checkbox1.Checked) 仅在第一个评估为 True 时才被评估。(因为 Delphi 使用短路评估)