середа, 28 вересня 2011 р.

Лабораторная работа 3 - дополнительные компоненты



1.  Добавьте в существующий проект, который вы делали на предыдущем занятии, новую форму (командой Файл|Создать|Форма). Сохраните новую форму как Form2. Измените заголовок формы (свойство Caption) на  «Страница «Дополнительная». Установите ее свойство Position равным poScreenCenter.
2.      В форме StandartTab в список Uses добавьте модуль Addition. Для кнопки Button4  установите свойство Enable равным True. Для ее события OnClick введите код
procedure TForm1.Button4Click(Sender: TObject);
begin
  Form1.Hide; // Спрятать форму
  Form2.Show;// Показать форму
end;
Метод Hide  устанавливает свойство компонентов Visible равным False. Метод Show  устанавливает свойство формы Visible равным True и помещает  форму на передний план.
В справке найдите методы BringToFront и ShowModal. Какое их назначение?
Откомпилируйте проект. Delphi предложит включить Unit2 в Unit1 для обеспечения связи между ними. Согласитесь, а затем, после выключения приложения, поределите, что изменилось в тексте Unit1.
3.   Разместите на форме компонент Bevel, а на нем – три кнопки BitBtn.
Эти компоненты позволяют разместить как текст надписи, так и изображение (битовую матрицу). Можно с помощью редактора изображений (команда Сервис|Image Editor) самостоятельно создать файл *.bmp либо выбрать из готовой коллекции. Для этого вызовите свойство Glyph, откройте папку C:\Program Files\Common Files\Borland Shared\Images\Buttons и выберите подходящее по Вашему мнению изображение.
       Для BitBtn3 можно выбрать стандартное изображение. Для этого установите свойство кнопки Kind=bkClose. Проследите, что произойдёт с видом кнопки? Просмотрите другие стандартные типы кнопок.
4.   Для BitBtn1 в событие OnClick введите код:
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
  Form1.Show;
  Form2.Hide;
end;
5.   Для BitBtn2  свойство Enabled=False
6.    Для BitBtn3 в событие OnClick введите код:
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
  Form1.Close;
end;
7.    Для правильной работы приложения в событие OnClose для формы2 добавьте код:
procedure TForm2.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Application.Terminate; // Закроется не только форма, но и очистится память
end;
8.  Добавить два компонента SpeedButton. Такие кнопки могут иметь рисунок, выглядеть нажатыми и работать в режиме «Нажата одна из группы». Для этого установите их свойство GroupIndex=1. Установите свойство Glyph для SpeedButton1 из файла Skylin16.bmp, а для SpeedButton2 из файла globe.bmp. Для SpeedButton1 установите NumGlyphs=1, а для SpeedButton2 - NumGlyphs=2. Свойством Margin  “подгоните” рисунок по центру кнопки.
Что означает свойство Flat?  Для SpeedButton1 введите подсказку, которая возникает при прохождении курсора мыши над компонентом: установите свойство ShowHint=True, в свойство Hint введите любой текст.
9.  Слева от SpeedButton1 добавьте компонент Shape и установите свойствa Shape=stEllipse; Pen.Color:=clGreen; Brush.Color:=clLime.
10.  Справа от SpeedButton2 добавьте компонент Image. Дважды щелкните на свойстве Picture  и загрузите файл пиктограммы Earth16.icoПодгоните размеры всех кнопок. Введите:
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
  if SpeedButton1.Down then
  begin
    Image1.Visible:=False;
    Shape1.Brush.Color:=clRed;
  end;
end;
procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
if SpeedButton2.Down then
  begin
    Image1.Visible:=True;
    Shape1.Brush.Color:=clLime;
  end;
   end;
11. Добавьте компонент Label, переименуйте его в «Введите номер телефона», и компонент MaskEdit. Дважды щелкните на его свойстве EditMask и выберите тип Phone, сформатируйте его под принятый в Кировограде формат.
12. Добавьте компонент StringGrid. Установите количество столбцов и строк сетки: RowCount=5, ColCount=5. Установите FixedCols и FixedRows равными 0. Подберите размер сетки как на рис. Добавьте компонент Button с именем «Заполнить сетку» и введите для нее код:
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]:='Coord.'+IntToStr(x)+'-'+IntToStr(y);
end;
13. Добавьте из страницы Dialogs невизуальный компонент OpenDialog, метку с именем «Имя файла», компонент Edit и кнопку с именем Обзор… и кодом
procedure TForm2.Button2Click(Sender: TObject);
begin
  OpenDialog1.FileName:='*.*';
  if  OpenDialog1.Execute then
    Edit1.Text:=OpenDialog1.FileName;
end;
Протестируйте Ваше приложение. Для защиты работы необходимо уметь объяснить, как оно работает и вносить небольшие изменения.

четвер, 22 вересня 2011 р.

Лабораторная работа №2 Страница стандартных компонентов


1.      Сохранить новый проект в папке «ЛР2»
2.      Изменить заголовок формы (свойство Caption) на «Страница Стандартных компонентов.
3.      В верхнюю часть формы добавить компонент TРanel (как показано на рис.). Используем ее как заголовок для формы. Установить свойство Caption как «Демонстрация страницы VCL «Стандартная».
4.      Добавить компонент TLabel, переименовав его согласно рис.
5.      Ниже метки расположить компонент TEdit, очистить его свойство Text.
6.      Добавить компонент TMemo. Вызвать справку по компоненту TMemo, изучить его свойства Align, ScrollBars, WordWrap, WantReturns. Попробовать задавать им различные значения, откомпилировать проект и сравнивтаь результаты. Удалить из свойства Lines текст, добавить несколько строк своего текста.
7.      Добавить компонент TRadioGroup, изменить заголовок согласно рис. В свойство Items ввести названия 4-х кнопок. Свойство ItemIndex указывает на номер кнопки, выбранной по умолчанию (-1 ничего не выбрано, 0 – выбрана 1-ая и т.д.). В код обработчика события OnClick ввести

procedure Form1.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;
8.      Добавить компонент TScrollBar. В событие OnChange дабавить код

procedure Form1.ScrollBar1Change(Sender: TObject);
begin
RadioGroup1.ItemIndex:=ScrollBar1.Position;
end;
9.      Добавить компонент TСomboBox.
10.  Добавить компонент  TListBox, установить свойство IntegralHeigt=True (выяснить, что это означает). Ввести несколько (>3) строк.
11.  Добавить компонент TGroupBox. Добавить в группу четыре TButton, две TRadioButton, две TCheckBox. Изменить заголовки этих компонентов согласно  рис.
У одной из RadioButton установить свойство Checked=True.
12.  Для Button1 в код обработчика события OnClick ввести

procedure Form1.Button1Click(Sender: TObject);
var
   x:integer;
begin
   Memo1.Clear; //Очистка содержимого Memo
   Memo1.Lines.Add(Edit1.Text); //скопировать в Memo текст из Edit1
   Memo1.Lines.Add(ComboBox1.Text); //скопировать в Memo текст из ComboBox
   //скопировать в Memo1 выбранный текст из окна списка ListBox1
   Memo1.Lines.Add('ListBox Строка #'+IntToStr(ListBox1.ItemIndex+1));
   if RadioButton1.Checked then Memo1.Color:=clWhite;
   if RadioButton2.Checked Then Memo1.Color:=clAqua;
end;

13.  Для Button2 в код обработчика события OnClick ввести

procedure Form1.Button2Click(Sender: TObject);
begin
   if CheckBox1.Checked then Form1.Font.Style:=[fsItalic]
                              else Form1.Font.Style:=[ ];
   if CheckBox2.Checked then Form1.Font.Color:=clPurple
                              else Form1.Font.Color:=clBlack;
end;

14.  Для Button3 в код обработчика события OnClick  ввести

procedure Form1.Button3Click(Sender: TObject);
begin
   Close;
end;

15.  Код для TButton4 пока отсутствует. Временно установить ее свойство Enable=False
16.  Добавить компонент TMainMenu (невизуальный). Двойным щелчком на свойстве Items запустить конструктор меню (либо из контекстного меню). Инспектор объектов при этом изменится. Установить свойство Caption=&Файл (амперсант& сообщает, что следующую за ним букву нужно подчеркнуть и включить ее в комбинацию быстрых клавиш. Здесь – Alt+Ф).
В выпадающем меню добавить пункт &Выход. Рядом с &Файл добавить пункт &Помощь с выпадающим списком из двух команд: По&мощь и &О программе… Разделить их между собой чертою, для чего добавить дефис (-) в свойство Caption строки меню сразу под По&мощь. Для пункта меню &Выход ввести код обработчика события Button3Click. Для команды &О программе… вывести окно сообщения со своими данными (используйте функцию ShowMessage).
17.  Добавить компонент TPopupMenu. Запустить конструктор меню, добавить команды «Готово» и «Обновить шрифты». Выбрать для них события, аналогичные событиям кнопок. Свяжите созданное меню с формой: в свойстве формы PopupMenu укажите PopupMenu1.
18.  Протестировать приложение.
19.  Для защиты работы необходимо уметь ответить на вопросы по своёствам и методам используемых в ней стандартных компонентов.