Работа компонентов панелей 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=’Текст ComboBox’, введем наименования выбираемых цветов в значение свойства 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 (Курсив), CheckBox2 (Зеленый). Добавим кнопки: 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 выберем процедуру Button4Click), «Справка» из двух строк: «Справка» и «О программе»).
Составим процедуры обработки пунктов меню «Справка»:
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:\ Borland Shared\Images\Buttons\arrow1l’), BitBtn2 (Caption=’Win32’, Kind= bkCustom, Glyph=’C:\Borland Shared\Images\Buttons\arrow1r’), BitBtn3 (Caption=’Выход’, 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 (EditMask=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;
Рис. 8.1.8.2. Вид формы с компонентами панели Win32
Разместим компоненты: Timer1 (Interval=1000), OpenDialog1, ProgressBar1 (Min=0, Max=1, Step=1), TrackBar1 (Min=0, Max=10, TickMarks=tmBottomRight, Frequency=1), TabControl1 (TabOrder=3, TabPosition =tpTop, имена страниц задайте в строках свойства Tabs), Panel1 (размещается на компоненте TabControl1 со свойствами: Caption=«Стр. 1», Alignment=taCenter), Panel2, Label1 (Просмотр дерева), Label2 (Выбор имени файла), Edit1, кнопки Button1 (...), Button2 (Standard), Button3 (Выход), TreeView1 (строки узлов дерева зададим редактором значения свойства Items). Составим соответствующие процедуры обработки событий.
procedure TForm3.TrackBar1Change(Sender:TObject); // измен. TrackBar1
begin ProgressBar1.Position:=TrackBar1.Position; end;
procedure TForm3.Timer1Timer(Sender: TObject); // таймер
begin Panel2.Caption:=TimeToStr(Time); { вывод текущего времени}end;
procedure TForm3.TabControl1Change(Sender:TObject);// изм. TabControl1
begin if TabControl1.TabIndex=0 then Panel1.Caption:='Стр.=1';
if TabControl1.TabIndex=1 then Panel1.Caption:='Стр.=2 ';
if TabControl1.TabIndex=2 then Panel1.Caption:='Стр.=3'; end;
procedure TForm3.Button1Click(Sender: TObject); // кнопка «...»
begin OpenDialog1.FileName:='*.*'; // вывод всех файлов
if OpenDialog1.Execute then Edit1.Text:=OpenDialog1.FileName {выбор}end;
procedure TForm3.Button2Click(Sender: TObject); // кнопка «Standard»
begin form2.show; end;
procedure TForm3.Button3Click(Sender: TObject); // кнопка «Выход»
begin form1.Close; end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin Application.Terminate; end; // корректное завершение работы
Присоединим новый модуль Unit3 к первому модулю командой File/ Use Unit. Теперь можно проверить работу программы на всех формах.
8.1.9. Игра «Поле чудес» (Delphi, C++ Builder)
В игре принимают участие три человека: двое игроков и ведущий (авторы программы: А. Влахнова и E. Петриченко).
Сначала игрок вращает барабан; после остановки барабана, если не выпал сектор Переход хода, в соответствующее поле вводит букву и нажимает кнопку Подтвердите (рис. 8.1.9.1). Если данной буквы в слове нет, ход передается другому игроку. Так продолжается до тех пор, пока один из игроков не решит назвать слово или пока не угадает его по буквам.
При нажатии на кнопку Назвать слово появляется поле ввода слова. После ввода слова надо подтвердить ввод.
В начале игры ведущий загадывает слово (рис. 8.1.9.2), предварительно введя пароль (текущую дату) (рис. 8.1.9.3).
Рис. 8.1.9.1. Вид формы игры «Поле чудес»
Рис. 8.1.9.2. Форма «Загадать слово» Рис. 8.1.9.3. Форма «Пароль»
На форме Поле Чудес (Form1) разместим следующие компоненты: Label1 (caption=’’, AutoSize=false, WordWrap=true); Label2(caption=’Буква’, visible=false); Label3 (caption=’ ’); Label4(caption=’Игрок1, Ваш ход’; visible=false); Label5(caption=’Игрок1, Ваш выигрыш - ’; visible=false); Label6 (caption=’Игрок2, Ваш выигрыш - ’; visible=false); кнопки: Button1(caption=’Выход’), Button2(caption=’Подтвердите’, visible=false), Button3(caption=’Загадать’), Button4(caption= ’Назвать слово', visible=false), Button5(caption=’Вращать барабан’,visible=false), Button6(caption=’Подтвердите’, visible=false); поле Edit1для ввода буквы (maxlengh=1; visible=false); поле Edit2 для ввода слова (visible=false); Image1(стрелка); 10 компонентов StaticText(visible=false), в которых будут появляться угаданные буквы; Chart1 (на закладке Series1: Rotation=0; на закладке Legend: TextStyle=Plain; LegendStyle=SeriesValues; остальные параметры настройте по своему усмотрению).
На форме Пароль (Form2) разместим следующие компоненты: Label1 (caption=’Введите пароль’), Edit1 (PasswordChar=’*’), Button1 (caption=’Подтвердите’).
На форме Загадать слово (Form3) разместим компоненты: Memo1 (Lines=’’), Edit1 (caption=’’), Button1 (caption=’Сохранить’), Label1 (caption=’Вопрос’), Label2 (caption=‘Слово*’), Label3 (caption=’* не более 10 букв’).
Дата добавления: 2016-03-22; просмотров: 1333;