Керуючі кнопки Button та BitBtn

Керуючі кнопки Button та BitBtn

  • розмір шрифту зменшити розмір шрифту збільшити розмір шрифту
  • Друк

Керування кнопками Button і BitBtn

Найпростішою і, мабуть, кнопкою, що найбільш часто використовується, є кнопка Button, розташована на сторінці бібліотеки Standard. Рідше використовується кнопка BitBtn, що відрізняється, перш за все, можливістю відобразити на поверхні зображення. Більшість властивостей, методів та подій у цих видів кнопок однакові.

Основне з погляду зовнішнього вигляду властивість кнопки - Caption (напис). У написах кнопок можна передбачати використання клавіш прискореного доступу, виділяючи один із символів напису. Перед символом, який має відповідати клавіші прискореного доступу, ставиться символ амперсанта &. Цей символ не з'являється в написі, а символ, що слідує за ним, виявляється підкресленим. Тоді користувач може замість клацання на кнопці натиснути будь-якої миті клавішу Alt спільно з клавішею виділеного символу.

Наприклад, якщо у вашому додатку є кнопка виконання якоїсь операції, ви можете задати її властивість Caption рівним «Виконати». На кнопці цей напис матиме вигляд «Виконати». І якщо користувач натисне клавіші Alt-В, це буде еквівалентно клацанню на кнопці.

Основна подія будь-якої кнопки - OnClick, що виникає при натисканні на ній. Саме в обробнику цієї події записуються оператори, які мають виконуватися при натисканні користувача на кнопці. Крім цього, є ще ряд подій, пов'язаних з різними маніпуляціями клавішами і кнопками миші.

Властивість Cancel, якщо його встановити в true, визначає, що натискання кнопкою Esc будееквівалентно натискання на цю кнопку. Цю властивість доцільно задавати рівним true для кнопок «Скасувати» у різних діалогових вікнах, щоб можна було вийти з діалогу, натиснувши на цю кнопку або натиснувши Esc.

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

Ще одна властивість - ModalResult використовується в модальних формах, розгляд яких виходить за рамки цієї книги. У звичайних додатках значення цієї властивості має дорівнювати mrNone.

З методів, властивих кнопкам, є сенс відзначити один - Click. Виконання цього еквівалентно клацання на кнопці, тобто. викликає подію кнопки OnClick. Цим можна скористатися, щоб продублювати якимись іншими діями користувача клацання на кнопці. Нехай, наприклад, ви хочете, щоб при натисканні користувачем клавіші із символом «С» або «с» у будь-який момент роботи з програмою виконувались операції, передбачені в обробнику події OnClick кнопки Button1. Оскільки невідомо, який компонент перебуватиме у фокусі в момент цієї події, треба перехопити його на рівні форми. Такий перехоплення здійснюється, якщо встановити властивість форми KeyPreview у true. Тоді у обробнику події форми OnKeyPress можна написати оператор

Якщо користувач ввів символ С або с, то в результаті буде виконаний обробник клацання кнопки Button1.

Все сказане вище однаково стосується і Button, і BitBtn. Розглянемо тепер особливості кнопки із піктограмою BitBtn. Зображення на цій кнопці задаєтьсявластивістю Glyph. При натисканні кнопки з трьома крапками в рядку властивості Glyph в Інспекторі Об'єктів викликається вікно, представлене на малюнку нижче. Натиснувши в ньому кнопку Load, ви перейдете у звичайне вікно відкриття файлу малюнка і можете вибрати файл бітової матриці .bmp, який містить бажане зображення. Зокрема з Delphi поставляється велика кількість зображень для кнопок. Вони розташовані в каталозі \Images\Buttons, а сам каталог Images в Delphi 5 і 4 розташований в каталозі \program files\common files\borland shared, а в інших версіях Delphi - в каталозі \program files\borland\delphi. .

керуючі

Після того, як ви вибрали зображення, натисніть OK і вибране зображення з'явиться на кнопці ліворуч від напису.

Файл зображення кнопки може містити до чотирьох зображень піктограм розміру 16x16. Найлівіше відповідає віджатій кнопці. Друге зліва відповідає недоступною кнопці, коли її властивість Enabled дорівнює false. Третє ліворуч зображення використовується при натисканні користувача на кнопку під час її увімкнення. Четверте зліва зображення використовується в кнопках із фіксацією SpeedButton, про які буде сказано пізніше, для зображення кнопки в натиснутому стані. Більшість зображень для кнопок використовують дві піктограми. Число піктограм можна дізнатися з властивості кнопки NumGlyphs, яка після завантаження зображення покаже вам число піктограм у ньому.

Розташування зображення та написи на кнопці визначається властивостями Margin, Layout та Spacing. Якщо властивість Margin дорівнює -1 (значення за замовчуванням), зображення та напис розміщуються в центрі кнопки. При цьому положення зображення по відношенню до напису визначається властивістю Layout, яке може приймати значення: blGlyphLeft (ліворуч, це значення прийнято за замовчуванням), blGlyphRight(праворуч), blGlyphТор (вгорі), blGlyphBottom (внизу). Якщо ж Margin > 0, то залежно від значення Layout зображення та напис зміщуються до тієї чи іншої кромки кнопки, відступаючи від неї на число пікселів, задане Margin.

Властивість Spacing визначає кількість пікселів, що розділяють зображення і напис на поверхні кнопки. За замовчуванням Spacing = 4. Якщо встановити Spacing = 0, зображення та напис будуть розміщені впритул один до одного. Якщо встановити Spacing = -1, то текст з'явиться посередині між зображенням і краєм кнопки.

Ще одна властивість BitBtn – властивість Kind визначає тип кнопки. За замовчуванням значення цієї властивості дорівнює bkCustom - замовна. Але можна встановити і безліч інших визначених типів: bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll. У цих типах вже створено відповідні написи, введено піктограми, задані деякі властивості. Зазвичай таки краще ними не користуватися. По-перше, написи все одно треба перекладати українською мовою. По-друге, зумовлені малюнки зазвичай вибиваються із загального стилю конкретної програми. І головне — визначення деяких властивостей, не врахованих вами, може іноді призводити до дивних результатів роботи. Вже краще використовувати кнопки на замовлення і самому встановлювати в них всі необхідні властивості.