Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы информатики и программир...docx
Скачиваний:
25
Добавлен:
12.11.2019
Размер:
6.53 Mб
Скачать

Var // раздел переменных модуля Unit1

a, b, c, d, e: real; n: Integer; // переменные

procedure TForm1.Button1Click(Sender:TObject); // вывод диаграммы

begin With Series1 do // закрепление объекта Series по умолчанию

begin clear; // очистка поля диаграммы

val(Edit1.Text,a,n); // перевод значения текстового поля Edit1.Text в “A”

if n=0 then add (a, 'Продукты', clRed);// вывод сектора “A” красным цветом

val(Edit2.Text,b,n); if n=0 then add (b,'Одежда', clBlack); // вывод сектора B

val(Edit3.Text,c,n); if n=0 then add (c, 'Мебель', clGreen); // вывод сектора C

val(Edit4.Text,d,n); if n=0 then add (d, 'Техника',clYellow);// вывод сектора D

val(Edit5.Text,e,n); if n=0 then add (e, 'Прочие', clWhite); // вывод сектора E

end; end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка “Очистить

begin Edit1.Text:=''; Edit2.Text:=''; Edit3.Text:=''; Edit4.Text:=''; Edit5.Text:='';

end;

procedure TForm1.Button3Click(Sender: TObject); // кнопкаВыход

begin Close; end;

Для формы в качестве обработчика события OnActivate укажем имя процедуры Button2Click ‑ обработки события OnClick кнопки Очистить.

8.1.8. Работа компонентов панелей Standard, Additional и Win32 (Delphi)

Создадим приложение в Delphi, в котором используются боль­шинст­во компонентов панелей Standard, Additional и Win32. Приложение будет состоять из трех форм. На каждой форме будут в основном размеще­ны компоненты одной из панелей.

К омпоненты панели Standard разместим на форме Form1 (Caption=’Панель Standard’, Position=poScreenCenter) (рис.8.1.8.1).

Рис. 8.1.8.1. Вид формы с компонентами панели Standard

Разместим панель Panel1 (де­монстрация панели ком­понентов Standard) в верхней части формы. Разместим мет­ку Label1 (имя), поле Edit1 (Text=’’) и компоненты MainMenu1, PopupMenu1 (AutoPopup=True). Под по­лем Edit1 разместим многостроковое поле Memo1 (WordWrap=True, WantReturns=True) (п. 2.3.2.3). Щелкнем по кнопке с трое­точием свойства Lines и введем четыре пустые строки. Разместим компоненты RadioGroup1 (Цвета фона), Scrollbar1 (Min=0, Max=3, LargeChange=1, SmallChange=1), ComboBox1 (Text=’Текст Combo­Box’, введем наименования выбираемых цве­тов в значение свойства Items (рис.8.1.8.1)) и ListBox1 (введем три ст­ро­ки в значение свойства Items (рис.8.1.8.1)). Дважды щелкнем по компо­ненту RadioGroup1 и введем текст процедуры обработки события OnClick:

procedure TForm1.RadioGroup1Click(Sender: TObject); // выбор цвета

begin if RadioGroup1.ItemIndex=0 Then Form1.Color:=clSilver; // серый

if RadioGroup1.ItemIndex=1 Then Form1.Color:=clBlue; // голубой

if RadioGroup1.ItemIndex=2 Then Form1.Color:=clYellow; // желтый

if RadioGroup1.ItemIndex=3 Then Form1.Color:=clRed; // красный

end;

Cоставим процедуру обработки события OnChange изменения значения ком­понента ScrollBar1:

procedure TForm1.ScrollBar1Change(Sender:TObject); //изменение цвета begin RadioGroup1.ItemIndex:= ScrollBar1.Position; end;

Разместим компонент GroupBox1 (Caption=’Параметры’). На эту па­нель разместим RadioButton1 (Белый фон Memo), RadioButton2 (Голубой фон Memo), CheckBox1 (Курсив), Check­Box2 (Зеленый). Добавим кнопки: Button1 (Шрифт), Button2 (Старт), Button3 (Additional), Button4 (Выход) и соответсвующие процедуры:

procedure TForm1.Button1Click(Sender: TObject); // кнопкаШрифт

begin if CheckBox1.State=cbChecked then Form1.Font.Style:=[fsItalic]

else Form1.Font.Style:=[];

if CheckBox2.State=cbChecked then Form1.Font.Color:=clGreen // зеленый

else Form1.Font.Color:=clBlack; // черный цвет шрифта

end;

procedure TForm1.Button2Click(Sender: TObject); // кнопка “Старт

begin Memo1.Clear; // очистить содержимое Memo1

Memo1.Lines.Add(Edit1.Text); // значение Edit1.Text добавляется в Memo1

Memo1.Lines.Add(ComboBox1.Text); // ComboBox1.Text добав. в Memo1

// Скопировать в Memo номер выбранного текста из окна ListBox

Memo1.Lines.Add('Строка ListBox #' + IntToStr(ListBox1.ItemIndex+1));

if RadioButton1.Checked then Memo1.Color:=clWhite; // белый цвет фона

if RadioButton2.Checked then Memo1.Color:=clAqua; // голубой цвет фона

end;

procedure TForm1.Button4Click(Sender: TObject); // кнопкаВыход

begin Close; end;

Щелкнем дважды на компоненте MainMenu1 и введем тексты опции ме­ню: “Файл” (из строки “Выход”и для события OnClick выберем про­це­ду­ру But­ton4­Cli­ck), “Справка” из двух строк: “Справ­ка” и “О программе”).

Составим процедуры обработки пунктов меню “Справка”:

procedure TForm1.N4Click(Sender: TObject); // пунктСправка

begin ShowMessage('Демонстрация возможностей MainMenu'); end;

procedure TForm1.N6Click(Sender: TObject); // пунктО программе

begin ShowMessage(‘Демонстрация возможностей компонентов'); end;

Щелкнем дважды на компоненте PopupMenu1 и введем тексты опции меню “Шрифт”, “Старт”. Для свойства OnClick определим значения Button1Click, Button2Click соответственно (вызов этих процедур). Для формы Form1 установим свойство PopupMenu=PopupMenu1.

Теперь можно проверить работу программы на первой форме.

К омпоненты панели Additional разместим на форме Form2 (Caption=’Панель Additional’, Position=poScreenCenter) (рис.8.1.8.2).

Рис. 8.1.8.2. Вид формы с компонентами панели Additional

Составим процедуру обработки кнопки “Additional” на первой форме:

procedure TForm1.Button3Click(Sender: TObject); // кнопка “Additional”

begin Form1.Hide; Form2.Show; end;// закрытие Form1 и вызов Form2

В правом нижнем углу разместим рамку Bevel1 для визуального вы­де­ления кнопок. Разместим кнопку Button1 (заполнить таблицу) и гра­фи­чес­кие кнопки: BitBtn1 (Caption=’Standard’, Kind=bkCustom, Glyph=’C:\ Bor­land Shared\Images\Buttons\arrow1l’), BitBtn2 (Caption=’Win32’, Kind= bk­Custom, Glyph=’C:\Borland Shared\Images\Buttons\arrow1r’), BitBtn3 (Cap­tion=’Выход’, Kind= bkClose).

Составим процедуры обработки нажатия кнопок

procedure TForm2.BitBtn1Click(Sender: TObject); // кнопка “Standard

begin Form1.Show; Form2.Hide; end;

procedure TForm2.BitBtn3Click(Sender: TObject); // кнопкаВыход

begin form2.Close; end;

Для корректной работы кнопки “Выход” составив процедуру:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin application.Terminate; end; // завершение работы приложения

Разместим компонент Panel1 и на нем разместим две быстрые кнопки SpeedButton1 (GroupIndex=1, NumGlyphs=4), SpeedButton2 (GroupIndex=1, NumGlyphs=2 Visible=False, Glyph=’D:\Borland Shared\ Images\Buttons\arrow1u’, Hint=’Быстрая кнопка с часиками’, ShowHint=True). Для кнопки SpeedButton1 можно на­ри­совать изображение высотой 16 и шириной 64 пикселей из четырех квад­ратных картинок размером 16 16 редактором изображений, который вызывается коман­дой Tools/Image Editor и сохранить изображение в фай­ле. Это имя нужно указать в свойстве Glyph этой кнопки. Мы восполь­зуем­ся готовым изо­бра­же­нием двух картинок из файла C:\Borland Shared\Images\ Buttons\ Clock’ и размножим это изображение для получения че­ты­рех кар­тинок и сох­раним под именем Clock в папке с данным приложе­ни­ем. Добавим на панель компонент Shape1 (Shape=stEllipse, Pen/Color=clGreen).

Справа от панели разместим компонент Image1 (Picture=’D:\Borland Shared\Images\Icons\technlgy).

Укажем процедуры обработки быстрых кнопок:

procedure TForm2.SpeedButton1Click(Sender: TObject); // SpeedButton1

begin If SpeedButton1.Down then begin Image1.Visible:=False;

Shape1.Brush.Color:=clRed; SpeedButton2.Visible:=True; end;

end;

procedure TForm2.SpeedButton2Click(Sender: TObject); // SpeedButton2

begin If SpeedButton2.Down then begin Image1.Visible:=True;

Shape1.Brush.Color:=clLime; end;

end;

Разместим компонент StaticText1 (Но­мер телефона) со свойством BorderStyle=sbsSingle, а под ним расположим компонент MaskEdit1 (Edit­Mask=Phone). Разместим компонент StringGrid1 (RowCount=3, ColCount=3, FixedCols=0, FixedRows=0).

Укажем процедуру обработки кнопки заполнения таблицы.

procedure TForm2.Button1Click(Sender: TObject); // заполнить таблицу

var x,y:Integer;

begin with StringGrid1 do For x:=0 to ColCount -1 do

For y:=0 to RowCount -1 do Cells[x,y]:=IntToStr(x)+','+IntToStr(y);

end;

Разместим панель с прокруткой ScrollBox1. На этой панели размес­тим кноп­ку BitBtn4 (Name=”Справка”, Kind=bkHelp) и панель Panel2 (Па­нель в ScrollBox). Укажем процедуру обработки кнопки BitBtn4 (Справка):

procedure TForm2.BitBtn4Click(Sender: TObject); // кнопка “Справка”

begin ShowMessage('Проверка кнопки “Справка“ в ScrollBox'); end;

Присоединим новый модуль Unit2 к первому модулю командой File/ User Unit. Теперь можно проверить работу программы и на второй форме.

Компоненты панели Win32 разместим на форме Form3 (Caption=’Панель Win32’, Position=poScreenCenter) (рис.8.1.8.3).

Составим процедуру обработки кнопки “Win32” на второй форме:

procedure TForm2.BitBtn2Click(Sender: TObject); // кнопка “Win32”

begin Form2.Hide; Form3.show; end;