Смекни!
smekni.com

Свойство 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&bsol;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();&bsol; показать форму Form1

AddTab->Hide();&bsol;свернуть форму AddTab

BitBtn2:

ShowMessage("Пока НЕТ");&bsol;следующей страницы пока нет

BitBtn3:

Form1->Close();//закрытьформу Form1

Для правильного закрытия приложения и освобождения ресурсов необходимо добавить для события Close формы Form1 код:

Application->Terminate();&bsol;освободить ресурсы

В левом верхнем углу формы разместим компонент 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 размещенными на нем компонентами позволяет продемострировать способности показвать фрагменты, которые не помещаются в зоне использования.