100 Компонентів delphi - button і bitbtn

5.2 Кнопки Button і BitBtn

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

Основне з точки зору зовнішнього вигляду властивість кнопки - 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 в інспектор об'єктів викликається вікно, представлене на рис. 5.2. Натиснувши в ньому кнопку 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. У цих типах вже зроблені відповідні написи, введені піктограми, задані ще деякі властивості. Зазвичай все-таки краще ними не користуватися. По-перше, написи все одно треба перекладати українською мовою. По-друге, зумовлені малюнки зазвичай вибиваються із загального стилю конкретного додатка. І головне - приречення деяких властивостей, які не обліковані вами, може іноді приводити до дивних результатів роботи. Вже краще використовувати замовні кнопки і самому встановлювати в них всі необхідні властивості.

Схожі статті