Bitbtn - кнопка з малюнком в delphi, delphi-faq

Кнопка з малюнком в Delphi представлена ​​компонентом BitBtn. клас якої TBitBtn породжений безпосередньо від класу TButton стандартної кнопки Button. Кнопка з малюнком відрізняється від стандартної кнопки тим, що крім заголовка на ній можна відобразити растрове зображення. Видом і розміщенням зображення на поверхні кнопки BitBtn можна керувати за допомогою властивостей.

властивість Glyph

Властивість Glyph типу TBitmap визначає растровий малюнок кнопки. За замовчуванням властивість Glyph має значення None, т. Е. Кнопка не містить малюнок. Малюнок може містити до трьох окремих зображень (гліфів). Яке саме зображення виводиться на кнопці, залежить від її поточного стану:

  • перше зображення відображається, якщо кнопка не було натиснуто (за замовчуванням);
  • друге зображення відображається, якщо кнопка неактивна і не може бути обрана;
  • третє зображення відображається, коли кнопка натиснута (виконаний клацання).

Панель для вибору ресунком (скріншот вище) визиваеться після натискання на кнопку з трьома крапками ввозле властивості Glyph (скріншот нижче).

Змінити режим відображення картинки в разі, коли фоновий колір задається лівим нижнім пикселом малюнка, можна, встановивши значення його взаємопов'язаних властивостей TransparentColor і TransparentMode. Для відновлення стандартне вікно перегляду потрібно встановити властивість TransparentMode в значення tmAuto.

Використовуючи малюнок з кількома різними зображеннями, можна при натисканні кнопки відтворювати на її поверхні найпростішу анімацію. Для цього перше і третє зображення повинні відрізнятися не тільки кольором, але і видом і розташуванням фігур. Відзначимо, що для реалізації більш складної анімації можна використовувати компонент Animate. розташований безпосередньо на кнопці.

Властивості NumGlyph

Кількість зображень вказується у властивості NumGlyph типу TNumGiyphs. За замовчуванням властивість NumGlyph має значення 1, і на кнопці завжди відображається перше зображення.

Властивості Kind

Delphi пропонує для кнопки BitBtn низку визначених видів, які обирають за допомогою властивості Kind типу TBitBtnKind. При виборі будь-якого виду для кнопки на ній відображається відповідний гліф. Для завдання виду кнопки можуть використовуватися такі константи:

  • bkCustom - на кнопці є вибране зображення; спочатку зображення відсутній, і його потрібно завантажувати додатково;
  • bkOK - на кнопці є гліф «зелена галочка» і текст ОК; властивість Default кнопки встановлено в значення True, а властивість ModalResult - в значення mrOK;
  • bkCancel - на кнопці є гліф «червоний знак х» і текст Cancel; властивість Cancel кнопки встановлено в значення True, а властивість ModalResult- в значення
  • mrCancel;
  • bkYes - на кнопці є гліф «зелена галочка» і текст Yes; властивість Default кнопки встановлено в значення True, а властивість ModalResult - в значення mrYes;
  • bkNo - на кнопці є гліф «червона перекреслена окружність» і текст No; властивості Cancel кнопки встановлено в значення True, а властивість ModalResult - в значення mrNO;
  • bkHelp - на кнопці є гліф «синьо-зелений знак питання» і текст Help;
  • bkClose - на кнопці є гліф «двері з позначенням виходу» і текст Close; при натисканні кнопки форма автоматично закривається;
  • bkAbort - на кнопці є гліф «червоний знак х» і текст Abort;
  • bkRetry - на кнопці є гліф «зелена стрілка повтору операції» і текст Retry;
  • bkIgnore - на кнопці є гліф «ігнорування» і текст Ignore;
  • bkAll - на кнопці є гліф «подвійна зелена галочка» і текст Yes to All.

За замовчуванням властивість Kind має значення bkCustom, і користувач може сам вибирати зображення, керуючи властивістю. Не рекомендується змінювати властивість Glyph для визначених кнопок (наприклад, для кнопки Close), т. К. В цьому випадку кнопка не виконуватиме закріплені за нею дії (в даному випадку закриття вікна).

Властивості Layout

Розташуванням зображення на поверхні кнопки щодо тексту управляє властивість Layout типу TButtonLayout, яка приймає такі значення:

  • blGlyphLeft (зображення зліва від тексту) - за замовчуванням;
  • blGlyphRight (зображення праворуч від тексту);
  • blGlyphTop (зображення над текстом);
  • blGlyphBottom (зображення під текстом).

Властивості Margin

За допомогою властивості Margin типу Integer можна управляти вирівнюванням гліфа і тексту щодо сторін кнопки. Це властивість задає відстань в пікселях між стороною кнопки і зображенням і за замовчуванням має значення -1, що означає розташування гліфа і тексту по центру кнопки. Сторона, щодо якої проводиться вирівнювання, визначається властивістю Layout. Наприклад, якщо значення Layout одно blGlyphLeft, то вирівнювання виконується по лівій стороні кнопки.

На скріншоті показані варіанти вирівнювання зображення і тексту, що відповідають різним значенням властивості Margin.

властивість Spacing

Властивість Spacing типу Integer визначає розмір (в пікселах) проміжку, що відокремлює гліф від тексту. За замовчуванням значення цієї властивості дорівнює 4 пикселам. Якщо значення цієї властивості дорівнює -1, то має місце центрування тексту між краєм гліфа і далекої від нього стороною кнопки.

На скріншоті показано використання різних значень властивості Spacing, відображених у вигляді тексту на кнопках.