русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Кнопки управления


Дата добавления: 2014-11-27; просмотров: 768; Нарушение авторских прав


Большинство приложений C++Builderимеют кнопки управления, простым нажатием которых пользователь может выполнять разнообразные действия. Простейшей и наиболее часто используемой кнопкой является компонент Button, который представляет собой стандартную кнопку Windows. Для отображения на кнопке текста, поясняющего ее назначение, используется свойство Caption (надпись). В надписях кнопок можно предусматривать использование клавиш ускоренного доступа, выделяя для этого один из символов надписи путем установки перед ним символа амперсанта "&". Этот символ не появляется в надписи, а следующий за ним символ оказывается подчеркнутым. Тогда пользователь может вместо щелчка на кнопке нажать в любой момент клавишу Alt совместно с клавишей выделенного символа. При нажатии на кнопку инициируется событие кнопки – OnClick,которое отображается в редакторе кода,а в обработчике этого события записываются операторы, которые должны выполняться при щелчке пользователя на кнопке.

Свойство Cancel определяет порядок использования клавиши Esc.Если его установить в true, то нажатие пользователем клавиши Esc будет эквивалентно нажатию на данную кнопку.

Свойство Default определяет порядок использования клавиши Enter,если его установить в true,то нажатие пользователем клавиши ввода Enter будет эквивалентно нажатию на данную кнопку, даже если данная кнопка в этот момент не находится в фокусе.

Несколько реже используется графическая кнопка BitBtn , на поверхности которой можно располагать изображение. Изображение на кнопке задается ее свойством Glyph. При этом необходимо :

  • В Инспекторе Объектов нажать кнопку с многоточием на строке свойств Glyph, врезультате чего будет вызвано окно редактора пиктограммы (Picture Editor).
  • Нажать кнопку редактора Load и перейти в обычное окно открытия файла рисунка.
  • Выбрать желаемое изображение из файла с расширением .bmp.

После выбора изображения при нажатии кнопки OK рисунок появится на кнопке левее надписи.



Расположение изображения и надписи (свойство Caption) на кнопке определяется свойствами Margin, Layout и Spacing. Если свойство Marginравно -1 (значение по умолчанию), то изображение и надпись размещаются в центре кнопки. Если же Margin > 0, то в зависимости от изображение и надпись смещаются к той или иной кромке кнопки, отступая от нее на число пикселей, заданное значением Margin. При этом положение изображения по отношению к надписи определяется Свойство Layout определяет положение изображения по отношению к надписи, которое может принимать значения: blGlyphLeft (слева, это значение принято по умолчанию), blGlyphRight(справа), blGlyphTop (вверху), blGlyphBottom(внизу).

Свойство Spacing задает число пикселей, разделяющих изображение и надпись на поверхности кнопки. По умолчанию Spacing = 4. Если задать Spacing = 0, изображение и надпись будут размещены вплотную друг к другу. Если задать Spacing = -1, то текст появится посередине между изображением и краем кнопки.

Еще одно свойство BitBtn- свойство Kind определяет тип кнопки. По умолчанию значение этого свойства равно bkCustom - заказная. Но можно установить и множество других типовых кнопок: bkOK, bkCancel, bkHelp, bkYes, bkNo, bkClose, bkAbort, bkRetry, bkIgnore, bkAll. В этих кнопках уже сделаны соответствующие надписи, введены пиктограммы, заданы свойства ModalResult и др.

Еще одной разновидность кнопок является кнопка с фиксацией SpeedButton .Эти кнопки обычно используются в качестве быстрых кнопок , дублирующих различные команды меню. Изображение на кнопке задается свойством Glyph , точно также как и для кнопки BitBtn.У кнопок TSpeedButton, как и у других кнопок, имеется свойство Caption - надпись, но в этих кнопках оно обычно оставляется пустым, так как вместо надписи используется пиктограмма. Особенностью кнопок TSpeedButton являются свойства GroupIndex(индекс группы), AllowAllUp (разрешение отжатого состояния всех кнопок группы) и Down (исходное состояние - нажатое). Если GroupIndex = 0, то кнопка ведет себя так же, как TButton и TBitBtn. При нажатии пользователем кнопки она погружается, а при отпускании возвращается в нормальное состояние. В этом случае свойства AllowAllUp и Downне влияют на поведение кнопки.

Если GroupIndex > 0 и AllowAllUp = true, то кнопка при щелчке пользователя на ней погружается и остается в нажатом состоянии. При повторном щелчке пользователя на кнопке она освобождается и переходит в нормальное состояние (именно для того, чтобы освобождение кнопки состоялось, необходимо задать AllowAllUp = true). Если свойство Down во время проектирования установлено равным true, то исходное состояние кнопки - нажатое.Если есть несколько кнопок, имеющих одинаковое ненулевое значение GroupIndex, то они образуют группу взаимосвязанных кнопок из которых нажатой может быть только одна. Если одна кнопка находится в нажатом состоянии и пользователь щелкает на другой, то первая кнопка освобождается, а вторая фиксируется в нажатом состоянии. Поведение нажатой кнопки при щелчке на ней зависти от значения свойства AllowAllUp. Если оно равно true, то кнопка освободится, поскольку в этом случае возможно состояние, когда все кнопки группы отжаты. Если же AllowAllUp равно false, то щелчок на нажатой кнопке не приведет к изменению вида кнопки. Впрочем, и в этом случае, как и при любом щелчке на кнопке, возникает событие OnClick, которое может быть обработано.

Состояние кнопки во время выполнения можно определить по значению свойства Down: если значение равно true, то кнопка нажата. Внешний вид интерфейса приложения, иллюстрирующего некоторые свойства кнопок, показан на рисунке 5.1, а программный код приведен на рисунке 5.2. Интерфейс приложения содержит форму на которой, кроме исследуемой кнопки типа Button,размещены кнопки других типов. Правую часть формы занимает окно многострочного редактированияMemo1, которое используется для демонстрации операторов кода при выполнении программы . Обозначения, принятые в приложении, и свойства используемых компонентов, установленные во время проектирования, поясняются в таблице 5.1. Назначение остальных компонентов приложения понятно из интерфейса (рис.5.1) и не требует дополнительных пояснений.

Таблица 5.1

Компонент Свойство Значение
Форма Caption Основные свойства кнопок
Кнопка Name Button1
Caption Исследуемая кнопка
Графические кнопки Name BitBtn1(Close)
Name BitBtn2(Ignore)
Name BitBtn3(Abort)
Name BitBtn4(Help)
Name BitBtn5(No)
Кнопки с фиксацией Name SpeedButton1
Name SpeedButton2
Радио кнопки Caption Изменение названия (RadioButton1)
Caption Изменение шрифта (RadioButton2)
Caption Кнопка невидима (RadioButton3)
Caption Другие виды кнопок(RadioButton4)
Многостроч.окно редактирования Name Memo1

Другие свойства компонентов принимаются по умолчанию.

 

Рис.5.1.Интерфейс приложения

 

//Программный код, иллюстрирующий некоторые свойства кнопок

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton1Click(TObject *Sender)//Изменение названия кнопки

{

Button1->Caption="Другое название ";

//Занесение операторов программного кода в поле Memo1

Memo1->Lines->Add( " Button1->Caption= Другое название ;");

}

//---------------------------------------------------------------------------

void__fastcall TForm1::RadioButton2Click(TObject*Sender)//Изменение парам. шрифта

{

Button1->Font->Name="Times New Roman ";

Button1->Font->Size=18;

//Занесение операторов программного кода в поле Memo1

Memo1->Lines->Add("Button1->Font->Name=Times New Roman ; ");

Memo1->Lines->Add( "Button1->Font->Size=18;");

}

//---------------------------------------------------------------------------

void_fastcall TForm1::RadioButton3Click(TObject *Sender)//Кнопка становится невидимой

{

Button1->Visible=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton4Click(TObject *Sender)//Вывод на форму других видов // кнопок

{

BitBtn1->Visible= true ; //Графические кнопки с различными рисунками

BitBtn2->Visible= true ;

BitBtn3->Visible= true ;

BitBtn4->Visible= true ;

BitBtn5->Visible= true ;

SpeedButton1->Visible=true;//Кнопки с фиксацией

SpeedButton2->Visible=true;

}

//---------------------------------------------------------------------------

Рис.5.2 Программный код, иллюстрирующий некоторые свойства кнопок

 

Программный код( Рис.5.2) позволяет демонстрировать основные свойства кнопок.Запускающим ключомдля демонстрации каждого свойстваявляется событиеOnClick (включение радио кнопок),а операторы программного кода ,реализующие то или иное свойство отображаются в окне редактирования Memo1.Листинг программного кода снабжен подробными комментариями и не требует дополнительных пояснений.

 



<== предыдущая лекция | следующая лекция ==>
Компоненты VCL | Окно редактирования Edit


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.