воскресенье, 22 декабря 2013 г.

3. Свойства и методы формы. Лабораторные Delphi (1)

Основные свойства формы в Delphi

Запустите на выполнение Delphi XE3. Создайте новый проект, выбрав в меню File | New | VCL Forms Application - Delphi. Появится форма нового проекта. Щелкните мышью по новой пустой форме.
Запустите на выполнение пустую форму, щелкнув по кнопке  или нажав клавиши Shift+Ctrl+F9. На экране появится пустая форма, содержащая только заголовочную строку. Закройте форму, щелкнув мышью по кнопке закрытия в заголовке формы щелкнув правой кнопкой мыши по заголовку формы и выбрав в появившемся контекстном меню строку Закрыть или нажав клавиши Alt+F4.
В окне Object Inspector отображаются свойства и события формы.
















Положите на форму с вкладки Standard палитры инструментов Tool Palette компонент ввода текста Edit и кнопку Button. Кнопке задайте надпись (свойство Caption) Заголовок. Форма примет следующий вид:







Дважды щелкните мышью по кнопке Заголовок или, выделив мышью эту кнопку, перейдите в окне Object Inspector на вкладку Events (события) и дважды щелкните мышью справа от события OnClick (событие, возникающее при щелчке пользователем мышью по кнопке). Откроется вкладка редактирования текста Unit1 и появится заготовка для обработчика события щелчка по кнопке:
procedure TForm1.Button1Click(Sender: TObject);
begin

end;
Введите оператор, помещающий в заголовок формы текст, набранный пользователем в поле ввода Edit:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Self.Caption := Edit1.Text;
end;
Ключевое слово Self, означающее, что свойство относится к текущей форме, можно опустить.
Запустите программу на выполнение. Введите произвольный текст в Edit1. Щелкните по кнопке Заголовок. В заголовке формы появится набранный вами текст.
Форму можно закрыть, выбрав в системном меню формы вариант Закрыть, нажав клавиши Alt+F4, щелкнув мышью по кнопке закрытия  в заголовке формы. Можно также закрыть форму программным способом, используя метод формы Close().
Положите на форму еще одну кнопку TButton. Присвойте кнопке текст Закрыть.







Для этой кнопки напишите обработчик события щелчка мышью, при котором происходит закрытие формы и завершение работы программы.
procedure TForm1.Button2Click(Sender: TObject);
begin
  Close();
end;
Запустите программу на выполнение, убедитесь, что при щелчке по кнопке Закрыть происходит завершение работы программы.
Поскольку закрывается главная (в данном случае единственная) форма программы, происходит завершение работы всего приложения. Чтобы выполнить завершение работы программы из любой формы, нужно вызвать метод Terminate() объекта Application:
Application.Terminate();
Свойство Icon позволяет задать для формы конкретную пиктограмму, помещаемую в левый верхний угол заголовка формы. Если это свойство не задано, то у формы присутствует иконка по умолчанию.
Выделите в свойствах формы строку Icon, щелкните мышью справа от значения этого свойства по кнопке Появится окно изменения изображения:









Щелкните по кнопке Load. Появится диалоговое окно открытия файла. Откройте на компьютере подходящий файл с расширением ico.
Щелкните по кнопке OK. Иконка будет помещена в заголовок формы.
Чтобы удалить из формы заданную иконку и вернуть иконку по умолчанию, нужно справа от свойства формы Icon выделить мышью сам текст (Icon) и нажать клавишу Del (удалить). Для удаления иконки можно также вызвать окно изменения изображения (рис. 4) и щелкнуть в нем по кнопке Clear (очистить).
Свойство WindowState задает вид формы при ее первоначальном запуске:
·        wsNormal — форма отображается в том виде, в котором она создавалась на этапе проектирования (значение по умолчанию).
·        wsMinimized — форма отображается в минимизированном виде на панели задач операционной системы.
·        wsMaximized — форма при запуске разворачивается на всю поверхность экрана.
Задайте различные значения для свойства WindowState, запустите приложение на выполнение, посмотрите на полученные результаты.
Верните свойству WindowState значение wsNormal.
Поэкспериментируйте со свойством BorderStyle.
·        Из выпадающего списка выберите значение bsNone. У формы пропадет заголовок и рамка. Запустите программу на выполнение. Завершить работу программы можно, щелкнув по кнопке Закрыть или вызвав Диспетчер задач и выбрав во вкладке Приложения вариант Снять задачу.
·        Выберите из списка bsSingle. Форма будет иметь размеры, которые нельзя изменить мышью.
·        Выберите bsDialog. Форма будет также фиксированных размеров. У нее только пропадет системное меню, кнопки минимизации и максимизации.
·        В случае значения по умолчанию bsSizable форма будет иметь обычное оформление, будет изменяемой.
·        Выберите bsToolWindow. Форма будет иметь фиксированные размеры, из заголовка пропадут системное меню, кнопки минимизации и максимизации. Останется только кнопка закрытия. Сам заголовок будет уменьшенной высоты.
·        В случае bsSizeToolWin форма будет иметь тот же вид, что и при задании bsToolWindow, только ее размеры можно менять мышью.
Значение свойства BorderStyle можно изменять не только при проектировании формы, но и в процессе выполнения программы. Например, чтобы установить для формы значение этого свойства в bsSingle, нужно выполнить оператор:
Self.BorderStyle := bsSingle;
Внесите в проект следующие изменения.
Положите на форму метку Label, установив значение свойства Caption в BorderStyle.
Положите на форму компонент ComboBox. Он позволяет создавать выпадающий список, из которого пользователь во время выполнения программы может выбрать конкретный элемент. Для свойства Style этого компонента из выпадающего списка выберите значение csDropDownList. Щелкните по кнопке  справа от свойства Items. В появившемся окне введите следующие значения для свойства BorderStyle и щелкните по кнопке OK.











Форма примет следующий вид.










Выделите мышью форму, перейдите на вкладку событий (Events). Найдите событие OnActivate. Оно возникает, когда происходит активация формы. По строке справа от названия этого события дважды щелкните мышью. Напишите следующий обработчик события:
procedure TForm1.FormActivate(Sender: TObject);
begin
  ComboBox1.ItemIndex := 2;
end;
Здесь устанавливается номер выбранной строки в списке ComboBox, то есть значение bsSizable. Элементы списка нумеруются, начиная с нуля. В результате при запуске приложения на выполнение форма будет иметь следующий вид.








Теперь нужно написать следующий обработчик события OnChange (при изменении) для компонента ComboBox. Это событие возникает каждый раз, когда пользователь изменяет текущее значение элемента в списке. Выделите мышью на форме этот компонент и дважды щелкните напротив события OnChange. Появится заготовка обработчика этого события, где следует ввести операторы:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  case (ComboBox1.ItemIndex) of
    0: Self.BorderStyle := bsNone;
    1: Self.BorderStyle := bsSingle;
    2: Self.BorderStyle := bsSizeable;
    3: Self.BorderStyle := bsDialog;
    4: Self.BorderStyle := bsToolWindow;
    5: Self.BorderStyle := bsSizeToolWin;
  end;
end;
Здесь используется оператор case, позволяющий выбрать одно значение из списка значений. В результате анализа выбора пользователем элемента из списка свойству формы BorderStyle присваивается соответствующее значение, и форма тут же примет новый вид.
Запустите программу на выполнение. Устанавливайте различные значения для этого свойства.

вторник, 17 декабря 2013 г.

2. Свойства и методы формы

Форма — основной визуальный компонент, на котором располагаются все элементы управления программой, средства отображения и изменения данных.

Основные свойства формы

Наиболее важные свойства формы представлены в следующей таблице.
Таблица 1. Основные свойства формы
Свойство
Описание
ActiveControl
Содержит имя одного из объектов на форме, который в настоящий момент имеет фокус. Имя элемента на этапе проектирования выбирается из выпадающего списка. Этот элемент получит фокус при первом отображении формы.
Align
Задает выравнивание формы на экране монитора. Значениями являются:
·  alNone (значение по умолчанию) — выравнивание формы производиться не будет,
·  alBottom — форма выравнивается по нижней части экрана,
·  alClient — форма выравнивается по всей поверхности экрана,
·  alCustom — у формы будут все элементы управления, заданные другими свойствами формы, размер формы нельзя изменять во время выполнения,
·  alLeft — форма выравнивается по левой части экрана,
·  alRight — форма выравнивается по правой части экрана,
·  alTop — форма выравнивается по верхней части экрана.
AlphaBlend
Определяет, может ли окно быть прозрачным (true) или нет (false). Свойство AlphaBlendValue задает степень прозрачности окна.
AlphaBlendValue
Определяет степень прозрачности окна: 0 — окно совершенно прозрачно, 255 — непрозрачно. Свойство AlphaBlend должно быть установлено в значение true.
AutoScroll
Определяет, будут ли в окне автоматически появляться полосы прокрутки, если при изменении пользователем размеров окна будут скрыты визуальные элементы (true) или нет (false). При этом свойство AutoSize должно быть установлено в значение false.
AutoSize
Указывает, может ли пользователь изменять размеры окна таким образом, чтобы скрывались визуальные элементы, расположенные на окне (значение по умолчанию false), или возможно только такое изменение размеров, при котором остаются видимыми все элементы (значение true).
BorderIcon
Определяет наличие кнопок в заголовке формы. Подсвойствами, принимающими значение true или false, являются:
·  biSystemMenu — наличие системного меню,
·  biMinimize — наличие кнопки минимизации,
·  biMaximize — наличие кнопки максимизации,
·  biHelp — наличие кнопки помощи.
BorderStyle
Указывает вид и поведение ограничивающей рамки у формы. Значениями являются:
·  bsNone — форма не будет иметь текста заголовка, системного меню, кнопок минимизации, максимизации и закрытия,
·  bsDialog — у формы будут присутствовать только системное меню и кнопка закрытия, размер формы нельзя изменять во время выполнения,
·  bsSingle — у формы будут присутствовать все элементы управления, заданные другими свойствами формы, размер формы нельзя изменять во время выполнения,
·  bsSizable — размеры формы можно изменять во время выполнения (значение по умолчанию),
·  bsToolWindow — размеры формы нельзя изменять во время выполнения программы, форма имеет тонкую границу, у формы присутствует только кнопка закрытия. Системное меню отсутствует. Заголовок формы имеет высоту меньше обычного,
·  bsSizeToolWin — вариант похож на задание bsToolWindow, при этом размер формы можно изменять.
Caption
Текст в заголовке окна.
ClientHeight
Высота клиентской части окна в пикселах.
ClientWidth
Ширина клиентской части окна в пикселах.
Color
Задает цвет фона формы. Значение выбирается из выпадающего списка.
Constraints
Задает ограничения на размер формы в пикселах. Подсвойствами являются:
·  MaxHeight — максимальная высота формы, если указан ноль, размер не ограничивается,
·  MaxWidth — максимальная ширина формы, если указан ноль, размер не ограничивается,
·  MinHeight — минимальная высота формы, если указан ноль, размер не ограничивается,
·  MinWidth — минимальная ширина формы, если указан ноль, размер не ограничивается.
Cursor
Задает вид курсора мыши, который появляется при наведении мыши на форму. Выбирается из выпадающего списка.
Enabled
Указывает, может ли форма принимать действия пользователя — щелчки мышью по кнопкам и элементам меню, ввод данных в поля Edit (значение по умолчанию true). Если задано false, то все диалоговые элементы формы блокируются.
Font
Задает характеристики шрифта для формы по умолчанию. Эти характеристики будут копироваться для всех компонентов, помещаемых на форму.
Height
Высота окна в пикселах.
Icon
Задает иконку, помещаемую в заголовок формы. При загрузке иконки вызывается обычное диалоговое окно выбора рисунка.
KeyPreview
Определяет, будут ли события нажатия пользователем клавиш перехватываться соответствующими событиями формы (значение true) или нет (значение по умолчанию false).
Left
Определяет положение на экране левого верхнего края окна в пикселах при старте формы по горизонтали.
Name
Имя формы. Создается при проектировании, не может изменяться во время выполнения программы.
Position
Задает положение и размер формы при ее первом выводе на экран. Может принимать следующие значения:
·  poDefault — начальное положение и размер формы будут определяться операционной системой,
·  poDefaultPosOnly — начальное положение формы будет определяться операционной системой,
·  poDefaultSizeOnly — размер формы будет определяться операционной системой,
·  poDesigned — начальное положение и размер формы будут такими же, как они были установлены при проектировании формы,
·  poDesktopCenter и poScreenCenter — форма располагается в центре экрана,
·  poMainFormCenter — форма располагается в центре главной формы,
·  poOwnerFormCenter — форма располагается в центре родительской формы.
Top
Определяет положение на экране левого верхнего края окна в пикселах при старте формы по вертикали.
Visible
Задает, видима ли форма во время выполнения (значение true) или нет (false).
Width
Ширина окна в пикселах.
WindowState
Указывает, будет ли форма при начальном появлении на экране минимизированной, максимизированной или у нее будет размер, заданный при проектировании. Принимает следующие значения:
·  Normal — форма имеет размер, заданный при проектировании,
·  Minimized — форма будет минимизированной,
·  Maximized — форма будет максимизированной, развернутой на весь экран.

Методы формы

Главные методы формы представлены в следующей таблице.
Таблица 2. Методы формы
Метод
Описание
Show
Вызывает на выполнение указанную форму. Таким методом можно вызвать произвольное количество экземпляров одной формы. В процессе выполнения программы можно переключаться между различными экземплярами формы.
ShowModal
Вызывает на выполнение форму в диалоговом, или в так называемом модальном, режиме. Переключиться на другую форму данного приложения невозможно, пока не будет закрыта модальная форма.
Close
Закрывает указанную форму. Если форма является главной в приложении, то завершается работа всего приложения.
В следующем сообщении будет описано создание нескольких проектов для реального использования свойств и методов форм.

понедельник, 16 декабря 2013 г.

1. Начало работы с RAD Studio


После успешной инсталляции на вашем компьютере RAD Studio можно начать изготавливать полезные программы с помощью этой замечательной системы быстрой (и качественной) разработки программ.
Для запуска на выполнение RAD Studio XE3 нужно щелкнуть мышью по кнопке Пуск, выбрать Все программы, затем Embarcadero RAD Studio XE3, в появившемся меню выбрать элемент RAD Studio XE3. Появится главное окно программы.
Для создания нового проекта (программы) в Delphi нужно в этом окне щелкнуть мышью по элементу главного меню File, в выпадающем списке выбрать New и в появившемся субменю выбрать элемент VCL Forms Application - DelphiБудет создана пустая форма.




В центре располагается форма, в левом нижнем углу — Инспектор объектов (Object Inspector), в правом нижнем углу — Панель инструментов (Tool Palette).
Инспектор объектов позволяет изменять характеристики выбранного на форме компонента. Он содержит две вкладки — Properties (свойства) и Events (события).
Во вкладке Properties содержится список свойств текущего компонента формы или самой формы. Во вкладке Events присутствует список событий, допустимых для данного компонента.
Панель инструментов содержит большое количество компонентов, как визуальных, так и невизуальных, которые позволяют очень удобно создавать программы любой сложности и с хорошим интерфейсом. Насколько разумной будет функциональность программы и сколь хороший интерфейс — это уж зависит от разработчика.
Созданную пустую форму можно тут же запустить на выполнение. Для этого нужно щелкнуть по кнопке 



или нажать клавиши Shift+Ctrl+F9.
Через несколько секунд после трансляции появится пустая форма. Ее можно перемещать по экрану обычным образом, изменять размеры, максимизировать, сворачивать.
Для закрытия формы нужно щелкнуть мышью по кнопке закрытия в правом верхнем углу формы.
Сейчас давайте установим некоторые свойства формы, создадим классическую программу, которую вначале создают практически все специалисты, обучающие программистов началам использования языков программирования и средств быстрой разработки программ. Я имею в виду программу Hello world, иными словами — здравствуй мир.
Установите заголовок формы — текст «Привет всем!». Для этого в Инспекторе объектов найдите свойство Caption и наберите в правой части этого свойства текст Привет всем!.
Далее сделайте так, чтобы форма при запуске на выполнение располагалась в центре экрана. Для этого в Инспекторе объектов для свойства Position из выпадающего списка справа выберите значение poScreenCenter.
Перейдите к Панели инструментов (Tool Palette). Раскройте список Standard, щелкните мышью по строке TLabel, а затем по любому месту на форме. На форме будет размещен компонент Метка (label). Установите его свойство Caption в значение «Привет ребята (и девчата)». Переместите на форме мышью компонент так, чтобы он выглядел достаточно презентабельным, то есть, в центре окна.





Запустите программу на выполнение и получите удовольствие от созданного простого, но доброжелательного проекта.






Для того чтобы создать такой же проект в C++ Builder, нужно в меню File выбрать Newа затем элемент VCL Forms Application - C++.
Также будет создана новая пустая форма. Инспектор объектов и Панель инструментов выглядят таким же образом, как и в случае создания проекта Delphi (на начальном уровне разработки).
При запуске на выполнение программы будет точно такая же форма с теми же характеристиками.
Задайте форме те же свойства и поместите на форму компонент метки, что и при работе с формой Delphi, и запустите на выполнение. Вы видите, что внешний вид точно такой же.
* * *
В следующий раз мы рассмотрим многие наиболее важные свойства формы и поэкспериментируем с ними, чтобы увидеть, какие полезные возможности нам дает использование RAD Studio.