На этом шаге мы рассмотрим флажки.
Флажки нужны для определения логических состояний. Например, флажки в диалоговом окне настройки свойств компилятора Visual Prolog позволяют определить, нужно ли производить проверку стека, должна ли генерироваться информация о номерах строк и т. д. В отличие от переключателя каждый флажок, как правило, не зависит от других флажков.
Когда пользователь щелкает мышью по флажку, предикату обработчика окна посылается событие e_Control. Если вы не используете пакет диалоговых окон, то для изменения состояния флажка вам придется написать код самостоятельно. Это можно сделать вызовом предиката:
win_Check(Window,integer OnOff).
Предложение для обработки изменения состояния флажка может быть таким:
mywin_event_handler(Window,e_Control(idc_check,CtrlType,CtrlWindow,_),0):-!,
% Проверка возможности изменения состояния
State=win_IsChecked(CtrlWindow),
toggle(State,NewState),
win_Check(CtrlWindow,NewState).
Если вы используете пакет диалоговых окон, вам не придется заботиться об изменении состояния флажков. В этом случае начальная установка должна быть выполнена при создании диалогового окна, а возвращение результирующего значения - при уничтожении.
Флажок посылает уведомление только об одном виде событий:
ehandler(Window,e_Control(CtrlId,CtrlType,CtrlWindow,activated),0):-
При получении и потере фокуса уведомительные сообщения не посылаются.
На следующем шаге мы рассмотрим переключатели.