Політ: книга програмера  
0. Вступ
1. Особливості політівських програм
2. Події та їх обробники
3. Елементи керування: принципи, Button, Label, Check, Radio,
InpLine, PicCtl, Header, Progress, Track, TimerCtl, Notebook,
SpinEdit, PopupBtn, Switcher, MainMenu, Splitter, Memo, ListBox

Сайт Польоту
 

Елементи керування
Кнопка-перемикач - Switcher (модуль Ctl)

Кнопка-перемикач - це штука, дуже схожа на кнопку-меню. Вона також зроблена на основі кнопки, тут також використовується меню. А різниця ось у чому. При створенні кнопки-перемикача не потрібно вказувати текст та іконку - вони беруться із першого елемента вказаного меню. Коли юзер натискає кнопку-перемикач, її текст та іконка міняється відповідно на текст та іконку другого елемента меню і так далі. Ну і коли юзер дійде до останнього пункта меню, далі буде вибраний його перший пункт. Це зручно юзати для маленьких меню із двох-трьох пунктів; наприклад, подивіться на кнопочку Редактор/Перегляд у Записнику.



Створити кнопку-перемикача
Function Switcher_Create(Prog:PProg; VMenu:PMenuItem;
  VPicturePos:TPicturePos): PControl;
  • VMenu - вказівник на меню.
  • VPicturePos - положення картинки (ppLeft - зліва від текста, ppTop - над текстом).


Намалювати кнопку-перемикач
Procedure Switcher_Paint(Me:PControl; 
  VX1,VY1,VX2:Integer);
VX1, VY1, VX2 - координати кнопки-перемикача. Висота її залежно від PicturePos або 20, або 35 пікселів.



Розглядати кнопку-перемикач як кнопку (Button)
Function Switcher_AsButton(Me:PControl): PControl;


Вибачайте, цього разу без коментарів. Тобто без прикладу.