Częstym przypadkiem jest konieczność użycia przycisku dwupozycyjnego, w którym operacja sterująca nie jest wykonywana od razu, lecz wymaga osobnego potwierdzenia. Schemat działania jest bardzo podobny do zwykłego przycisku dwupozycyjnego.
Właściwości podstawowe |
||
|
Aktywny |
Tak |
|
Główna zmienna |
Flag1 |
|
Zmienna sterowana |
#Control |
|
Typ kursora |
Hand |
|
Typ przycisku |
Przycisk prostokątny 3d |
|
Tryb przełącznika |
Tak |
|
Sterowanie natychmiastowe |
Nie |
Właściwości stanowe, stan podstawowy |
||
|
Włączony |
=Variable() |
|
Wartość wyłączenia |
1 |
|
Wartość włączenia |
2 |
|
Kolor włączenia |
=HasWaitingControl()?LightGreen:LightGray |
|
Kolor wyłączenia |
=HasWaitingControl()?LightCoral:LightGray |
|
Tekst wyłączenia |
Off |
|
Tekst włączenia |
On |
Sterowanie natychmiastowe ustawione na Nie powoduje, że kliknięcie na przycisku powoduje tylko zmianę jego stanu na przeciwny. Przycisk jest w tym stanie do momentu zatwierdzenia sterowania akcją SendControls lub jego anulowania akcją CancelControls. Istotne jest, aby wizualnie pokazać, że obiekt oczekuje na zatwierdzenie operacji. W przykładzie zmieniany jest kolor przycisku. Wyrażenie warunkowe wykorzystuje funkcję HasWatingControl, która przyjmuje wartość true, gdy obiekt jest w stanie oczekiwania.
W przykładzie pokazano też, że sterowanie (komenda) jest wysyłane do innej zmiennej niż zmienna główna decydująca o stanie przycisku. Nazwa zmiennej sterowanej tworzona jest notacją sufiksową i w tym przykładzie jest to Flag1Control.
Podobnie jak w poprzednim przykładzie, po wykonaniu operacji może dojść do chwilowego powrotu przycisku do stanu początkowego, na czas potrzebny do wykonania sterowania, wykonania komendy przez sterownik i zwrotnego odczytu zmiennej głównej.