Как использовать флажок в 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 использует оценку короткого замыкания)

Другие вопросы по тегам