Учебник по Delphi

Создание приложений.

   Чтобы написать программу для Windows (то есть приложение), нужно создать проект. Проект создается автоматически, когда вы запускаете Delphi. Однако его можно создать и принудительно, выбрав в меню File > New > Application. В этом случае Delphi создаст стандартное приложение Windows.

   Если вы хотите создать что-то менее стандартное (например, компонент или консольное приложение), то нужно нажать кнопку New Items с изображением чистого листа или выбрать в меню File > New > Other. Откроется окно с различными проектами, которые можно создавать в Delphi: Application (обычная программа для Windows), Batch File (командный файл), Component (новый компонент), Console Application (консольное приложение, которое выглядит как окно DOS), DLL Wizard (создание DLL). Выбрав нужный тип проекта, нажмите ОК, и проект будет создан.

   После создания нового проекта Application на экране появляется пустая форма. Можно сразу изменить некоторые ее свойства в окне Object Inspector, где отображаются свойства активного в данный момент компонента. Чтобы активизировать компонент, нужно щелкнуть на нем мышью. Если щелкнуть на форме, то она станет активной и можно будет изменять ее свойства.

   Обычно я сразу же изменяю некоторые свойства формы. Например, если не нужно, чтобы окно разворачивалось во весь экран (а часто это как раз не нужно), то следует изменить значение свойства BorderStyle. Установив его равным bsSingle, вы не разрешите пользователю изменять размеры формы. Наоборот, если нужно, чтобы пользователь мог свободно изменять размеры формы, то задайте значение bsSizeable.

Свойство BorderStyle может принимать и другие значения. Вот краткое описание всех значений:

bsDialog — диалоговое окно. Используется для создания окон с вопросом или сообщением для пользователя. В таком окне присутствует только кнопка закрытия (крестик). Размеры заголовка окна нормальные;
bsNone — окно без заголовка. С помощью таких окон удобно делать заставки программ и необычные формы, например в играх, проигрывателях. Когда вы сами оформляете кнопки сворачивания, разворачивания и закрытия окна, тоже можно выбирать это свойство. Имейте в виду, что если задать значение bsNone и не предусмотреть закрытие окна (например, специальной кнопкой), то пользователь сможет закрыть такое окно, только нажав Alt+F4;
bsSingle — обычное окно, размеры которого нельзя изменять, потянув мышью за границу окна. Размеры заголовка окна нормальные;
bsSizeable — обычное окно. Отличается от bsSingle тем, что можно изменять размеры окна;
bsSizeToolWin — такое окно похоже на bsDialog, но его заголовок очень маленький. Это значение удобно использовать, когда вы создаете какую-то панель инструментов в своей программе, или для других экзотических целей;
bsToolWindow — то же самое, что и bsSizeToolWin, только пользователь не может изменять размеры окна мышью.

   Итак, мы выбрали bsSingle. После этого нужно установить значения свойства Borderlcons, которое отвечает за отображение кнопок в заголовке окна (сворачивания, разворачивания во весь экран). Чтобы изменить значения этого свойства, в окне Object Inspector нужно дважды щелкнуть мышью на Borderlcons. Появится возможность изменять значения, устанавливая True (истина) или False (ложь), соответственно для отображения или неотображения той или иной кнопки в заголовке окна.

Перечислю возможные значения:

biSystemMenu — отвечает за отображение кнопки меню окна. Она располагается в левом верхнем углу окна;
biMinimize — кнопка сворачивания окна;
biMaximize — кнопка разворачивания окна во весь экран;
biHelp — кнопка системы помощи (значок вопроса).

   Еще одним свойством формы, которое лучше сразу установить, чтобы потом не забыть, является Position. Это не что иное, как размещение формы на экране. Свойство Position может иметь следующие значения:

poDefault — окно появится на экране там, где укажет операционная система;
poDefaultPosOnly — окно появится там, где оно находилось в момент разработки, но операционная система при необходимости может изменить координаты появления окна;
ро Defa u ItSizeO n ty — окно будет расположено там, где оно было в процессе разработки, но операционная система при необходимости может изменить размеры окна;
poDesigned — окно появится там, где оно находилось в момент разработки приложения (компиляции);
poDesktopCenter — окно появится в центре Рабочего стола;
poMainFormCenter — если это не основное окно программы, а вызываемое, то оно будет расположено в центре основного окна;
poOwnerFormCenter — если это не основное окно программы, а вызываемое из какого-то другого окна (назовем его материнским), то расположение будет в центре материнского окна;
poScreenCenter — окно появится в центре экрана.

   Чтобы не забивать голову, проще запомнить лишь несколько из этих значений: poDefault, poDesktopCenter и poOwnerFormCenter. Их хватит для решения большинства задач. Я обычно использую poDesktopCenter для основного окна и poOwnerFormCenter для остальных окон приложения.

   Последнее свойство формы, которое лучше задавать сразу, — это WindowState. Оно показывает, как будет выглядеть окно при запуске программы. Может иметь значения wsNormal, wsMaximized и wsMinimized, что соответствует обычному, развернутому во весь экран и свернутому в область уведомлений.

   Мы рассмотрели все свойства формы, значения которых лучше изменить сразу, чтобы не забыть потом. Не страшно, конечно, если изменить их позже. Теперь будем добавлять компоненты на форму. На палитре компонентов множество вкладок, и все они важны! Конечно, компоненты с вкладки Standard используются чаще остальных, но не намного.

   Добавить компонент на форму можно несколькими способами. Например, дважды щелкнуть мышью на компоненте на палитре, и он добавится в центр формы. После чего компонент можно перетащить мышью в нужное место или изменить его размеры, подведя указатель мыши к границе компонента. В процессе перемещения или изменения размеров компонента Delphi будет помогать всплывающей подсказкой, показывая координаты компонента. Это очень удобно, но, к сожалению, отсутствовало в начальных версиях Delphi.

   Второй способ заключается в одинарном щелчке на палитре компонентов, чтобы активизировать добавление нужного нам компонента, и затем помещении его на форму тоже щелчком мышью. В таком случае можно задавать сразу размещение и размер добавляемого компонента.

   Для удаления ненужного компонента с формы его нужно активизировать (щелкнуть на нем мышью), чтобы он стал выделенным (по углам компонента появятся черные квадратики), и нажать клавишу Delete. Можно выделить несколько компонентов, удерживая Shift на клавиатуре.

   Когда вы двигаете компонент мышью, он сдвигается сразу на 8 пикселов. Если вы изменяете размер, то он тоже уменьшается или увеличивается на-8 пикселов. Часто же необходимо более точно двигать или изменять размер. В этом случае просто держите клавишу Shift и перемещайте или изменяйте размер клавишами управления курсором. Ими же, удерживая Ctrl, можно сдвигать компонент на 1 пиксел.

   Конечно, компонент можно двигать, прямо указывая в Object Inspector координаты (Left и Тор), но это удобно только в некоторых случаях. Создадим простейшее приложение. В дальнейшем будет приведено множество примеров, и подробно рассматривать набор элементарных действий при создании приложения уже не будем. Первым приложением пусть будет традиционное «Hello, World!» («Привет, Мир!»). Обычно при изучении какого-нибудь языка програм- мирования считается традицией сделать первым приложением программу «Hello, World!».

   Итак, форма появилась автоматически. Ее свойства мы изменили, как было рассказано выше. Теперь поместим на форму компоненты. Дважды щелкните мышью на кнопке Button на палитре компонентов, а затем дважды на этикетке Label. Приступим к изменению свойств компонентов. Опять сделаем активной форму (просто щелкните мышью на любом ее месте, свободном от компонентов) и впишем в свойство Caption формы строку «Привет, Мир!». Теперь активизируем кнопку Buttonl (щелчком мыши на этой кнопке, находящейся на форме) и у нее тоже изменим значение свойства Caption на «Нажми меня, я жду!». Обратите внимание, что на кнопку не поместился весь текст, поэтому ее нужно сделать шире. Подведите мышь к границе кнопки, чтобы курсор превратился в черную стрелку, и, нажав левую кнопку, двигайте до тех пор, пока Buttonl не станет достаточно широкой.

   Теперь будем манипулировать этикеткой Labell. Сделаем ее активной и изменим значения некоторых свойств. Например, свойству AutoSize присвоим значение False. Это означает, что этикетка не будет изменять свой размер, подстраиваясь под текст. Если задать AutoSize равным True, то, удалив все буквы из Caption, мы добьемся того, что этикетка станет нулевой ширины. А нам это сейчас неудобно. Также изменим значение свойства Alignment с taLeftJustify на taCenter (это привязка текста внутри этикетки). В данном примере красивее, когда текст расположен по центру. Теперь изменим размер этикетки так, чтобы она по ширине примерно была равна кнопке Buttonl. Все, процесс визуальной части программирования завершен. Перейдем к наполнению программным кодом. В приложениях Windows вообще программирование сводится к обработке событий. В нашем приложении «Hello, World!» при нажатии кнопки Buttonl на этикетку Labell будет выводиться текст. Значит, нужно всего лишь написать обработку события нажатия кнопки Buttonl.

   Взгляните на Object Inspector. До этого мы только изменяли свойства компонентов на вкладке Properties. Но есть еще вкладка Events. Перейдите на нее, предварительно сделав активной кнопку Buttonl. В окне перечислены все события, которые могут относиться к кнопке. Нас интересует событие OnClick, которое генерируется при нажатии кнопки. Чтобы создать процедуру обработки этого события, дважды щелкните мышью на пустом поле справа от надписи OnClick (рис. 2.17). Откроется окно редактирования кода программы, причем процедура обработки события OnClick создастся автоматически:

procedure TForml.ButtonlClick(Sender: TObject);
begin
end;

Между begin и end можно писать текст программы.

Labell.Caption := 'Привет, Мир!';

Теперь запустите программу на выполнение. Для этого служит кнопка Run с изображением стрелки-треугольника, направленной вправо. Можно также нажать клавишу F9 на клавиатуре.




 

Рейтинг@Mail.ru          Rambler's Top100

X-ZiBiT