Как использовать флажок в Delphi?
Прямо сейчас у меня есть код:
begin
If odd(GetAsyncKeyState(VK_snapshot)) then
If CheckBox1.Checked then
begin
И затем это продолжается с остальной частью кода. Это правильный способ сделать это, или я делаю это неправильно?
3 ответа
Решение
То, что вы предлагаете, является совершенно законным способом определить, установлен ли флажок. Такой код может выглядеть так
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 использует оценку короткого замыкания)