Свойство glyph компонента является объектом, имеющим тип TBitmap.
Пиктограммы содержат от одного до четырех отдельных блоков, хранящихся в одном файле. эти блоки представляют различные состояния кнопки.
1. Состояние кнопки = ненажатое (обычное состояние).
2. Состояние кнопки = недоступное (отображение серым цветом; Enabled = false).
3. Состояние кнопки = нажатое (отображение смещенное и, возможно, затемненное).
4. Состояние кнопки = фиксированное нажатое (только для кнопок панели инструментов).
Пиктограммы можно назначать как при создании формы, так и во время работы программы(например, для получения динамического визуального эффекта либо для изменения вида кнопки в зависимости от внешних условий). Для того чтобы пиктограмма загружалась во время работы, разместите объект BitBtn на форме, щелкните на нем дважды и в обработчик события OnClick вставьте следующие операторы:
BitBtn1->Glyph->LoadFromFile (“alarm.bmp");
Выключатель (компонент CheckBox). Это также стандартный управляющий элемент Windows, состоящий из метки и небольшого квадратика. Щелкнув на нем, пользователь может включить или выключить параметр или режим, описанный меткой.
Группа (компонент GroupBox). Данный компонент предназначен для логического объединения множества переключателей и других объектов.
Фокус ввода пользователи могут перемещать между группами с помощью клавиши <Tab>. Затем, используя клавиши управления курсором, можно выбрать один из управляющих элементов, объединенных в группу.
Переключатель (компонент RadioButton). На группу или панель можно поместить несколько переключателей, но в большинстве случаев для создания наборов переключателей гораздо удобнее использовать компонент RadioGroup. Кроме того, наборы переключателей можно распологать непосредственно на форме.
Группа переключателей (компонент RadioGroup). Этот компонент имеет много общего с группой, но он намного удобнее в использовании при создании наборов переключателей. Для организации переключателей необходимо только указать текст переключаемых параметров в свойстве Itemsгруппы переключателей.
Строка ввода с настройкой (компонент SpinEdit) - компонент, представляющий собой кнопку настройки, объединенную со строкой ввода. Щелчки на кнопке приводят к увеличению или уменьшению числа, находящегося в строке ввода. Кроме того, пользователи могут вводить число непосредственно в самой строке ввода, которая к ттому же распознает команды работы с буфером обмена Windows.
Панель (компонент Panel). Данный компонент позволяет упорядочить загроможденные информацией окна, а также является основой создания панелей инструментов и строк состояния.
Фаска (компонент Bevel). Этот чисто визуальный компонент выглядит в окне как прямоугольный выступ или углубление. Фаска также используется для создания горизонтальных и вертикальных линий.
Рассмотри пример использования рассмотренных выше компонент.
Начнем разработку нового проекта.
Согласно рисунка поместим на верхнюю часть формы компонент Panel.
Свойству Captionприсвоим “Демонстрация”. Далее на форму добавим компонент Label и установим свойство Caption “Имя”. Под метку добавим компонент Edit. Используя инспектор объектов удалим символы из свойства Text объекта Edit. Далее добавим компонент Memo.
В инспекторе объектов установим ScrollBars в позицию ssVertical (вертикальная полоса прокрутки). Далее в инспекторе объектов двойным щелчком откроем свойство Lines, удалим текст Memo1 и четыре раза нажмем клавишу Enter(будем работать с четыремя строками).
Установим на форме компоненты RadioGroup, Scrollbar и ComboBox. Дважды щелкнем на правее свойства Items и введем четыре строчки: серый, голубой, желтый, красный. Дважды щелкнем по компоненте RadioGrouoи введем код:
if(RadioGroup1->ItemIndex==0){Form1->Color=clSilver;}
if(RadioGroup1->ItemIndex==1){Form1->Color=clBlue;}
if(RadioGroup1->ItemIndex==2){Form1->Color=clYellow;}
if(RadioGroup1->ItemIndex==3){Form1->Color=clRed;}
Этот фрагмент кода позволяет изменять цвет формы в зависимости от отмеченной кнопки.
Далее дважды щелкнем по компоненте Scrollbar и добавим код:
RadioGroup1->ItemIndex=ScrollBar1->Position;
Этот фрагмент кода позволяет изменять цвет формы в зависимости от положения ползунка.
Поместим на форму копонент GroupBox и добавим две кнопки Button, две кнопки BitBtn , две RadioButton и две Checkbox. Щелкнем по кнопке Button1 и введем код:
//Очистить содержимое Memo
Memo1->Clear();
//Скопировать в Memo текст, введенный в Edit
Memo1->Lines->Add(Edit1->Text);
//Скопировать в Memo текст из Combobox
Memo1->Lines->Add(ComboBox1->Text);
// Если нажата первая радиокнопка, то цвет Memo белый
if (RadioButton1->Checked) Memo1->Color=clWhite;
// Если нажата первая радиокнопка, то цвет Memo светло-голубой
if (RadioButton2->Checked) Memo1->Color=clAqua;
Щелкнем по кнопке Button2 и введем код:
Close(); //закончить работу
Щелкнем по кнопке BitBtn1 и введем код:
//если помечена кнопка Checkbox1, то размер шрифта на форме 12
// иначе размер шрифта 8
if (CheckBox1->State==cbChecked)
Font->Size=12;
else
Font->Size=8;
//если помечена кнопка Checkbox2, то цвет шрифта на форме фиолетовый
// иначе цвет шрифта черный
if (CheckBox2->State==cbChecked)
Form1->Font->Color=clPurple;
else
Form1->Font->Color=clBlack;
Щелкнем по кнопке BitBtn2 и введем код:
Form1->Hide();// свернуть форму с именем Form1
AddTab->Show();// показать форму с именем AddTab
Как работать с двумя формами рассмотрим дальше.
Вся программа будет выглядеть следующим образом:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioGroup1Click(TObject *Sender)
{
if(RadioGroup1->ItemIndex==0){Form1->Color=clSilver;}
if(RadioGroup1->ItemIndex==1){Form1->Color=clBlue;}
if(RadioGroup1->ItemIndex==2){Form1->Color=clYellow;}
if(RadioGroup1->ItemIndex==3){Form1->Color=clRed;}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ScrollBar1Change(TObject *Sender)
{
RadioGroup1->ItemIndex=ScrollBar1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Clear();
Memo1->Lines->Add(Edit1->Text);
Memo1->Lines->Add(ComboBox1->Text);
if (RadioButton1->Checked) Memo1->Color=clWhite;
if (RadioButton2->Checked) Memo1->Color=clAqua;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (CheckBox1->State==cbChecked)
Font->Size=12;
else
Font->Size=8;
if (CheckBox2->State==cbChecked)
Form1->Font->Color=clPurple;
else
Form1->Font->Color=clBlack;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
Form1->Hide();
AddTab->Show();
}
//---------------------------------------------------------------------------
Построим вторую страницу приложения. Добавим в разрабатываемый проект вторую форму и дадим ей имя AddTab и сохраним под именем AdditionalTab.pas.
Разместим визуальные компоненты на форме согласно рисунка.
Поместим на форму в левый нижний угол компонент Bevel. Поместим три кнопки типа BitBtnв нижний левый угол формы на компонент Bevel.
Свойство Kind для BitBtn1 и BitBtn2 установим равным bkCustom, а для BitBtn3 – равным bkClose.
Установим на кнопках для свойств Captionтекст, соответствующий рисунку. Для каждой из кнопок установим гравировку (glyph), используя готовые гравировки, поставляемые в комплекте с языком или создавая свои с помощью редактора ImageEditor в меню инструментов Tools.
Добавляем код действия для кнопок:
BitBtn1:
Form1->Show();\ показать форму Form1
AddTab->Hide();\свернуть форму AddTab
BitBtn2:
ShowMessage("Пока НЕТ");\следующей страницы пока нет
BitBtn3:
Form1->Close();//закрытьформу Form1
Для правильного закрытия приложения и освобождения ресурсов необходимо добавить для события Close формы Form1 код:
Application->Terminate();\освободить ресурсы
В левом верхнем углу формы разместим компонент Shape (укажем в свойстве Shape значение stEllipse), компонент Panel и на нем две кнопки SpeedButton и компонент Image, в который можно загрузить какое-либо изображение.
Кнопки SpeedButton могут находиться в состоянии: Up- верхнее, Disabled – отключено, Down – нижнее, StayDown – прижатое. Для каждого состояния отображается соответствующий элемент гравировки. Для использования этих состояний с помощью встроеннного графического редактора создается матрица 16х64 точки. Изображение будет иметь четыре квадратные зоны.
Установим свойство NumGlups для Speedbutton1 равным 4, а свойство GroupIndex равным 1.
Дважды по кнопки SpeedButton1 и пишем код:
if (SpeedButton1->Down==true)
Image1->Visible=false;
Shape1->Brush->Color=clRed;
Код означает, что если нажата кнопка, то изображение Image1 исчезает, а изображение фигуры Shape1 красного цвета.
Дважды щелкаем по кнопке SpeedButton2 и записываем код:
if (SpeedButton1->Down=true)
{Image1->Visible<<true;
Shape1->Brush->Color=clLime;
Для SpeedButton1 используем свойство Hint (подсказка). В этом свойстве хранится строка подсказки, которая появляется, когда курсор мыши находится над кнопкой. ShowHint необходимо установить в true.
Добавим на форму компонент Labelсвойство Caption зададим Phone.
Под меткой установим компонент MaskEdit. Дважды щелкнем на свойстве EditMask и запусти редактор маски ввода. Далее щелкнем на Phone и нажмем клавишу OK. Компонент MasEdit будет настроен на прием телефонных номеров.
Поместим на форму компонент StringGridи установим свойства: RowCount и ColCount. Свойства FixedCols и FixedRows установим в 0.
Подберем размер сетки чтоб были видны девять ячеек. Добавим на форму кнопку со свойством CaptionFillGrid. Дважды щелкнем на ней и наберем код:
int x,y;
for (x=0; (x<=StringGrid1->ColCount-1);x++)
for ( y=0;(y<=StringGrid1->RowCount-1);y++)
StringGrid1->Cells[x][y]=("Coord. "+
IntToStr(x)+"-"+IntToStr(y));
Далее поставим на форму панель с прокруткой ScrollBox и разместим на ней компоненты:BitBtn со свойством Kind равным bkHelp. Добавим на ScrollBoxPanel. Дважды щелкаем на кнопке BitBtn4 и добавляем код:
ShowMessage(" Test ");
Компонент ScrollBoxc размещенными на нем компонентами позволяет продемострировать способности показвать фрагменты, которые не помещаются в зоне использования.