«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

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

 

Напредыдущем семинаре нам уже довелось «создать» простейшее при­ложение - оно само собой возникает при открытии нового проекта и со­стоит из «пустой» формы (на самом деле у неё есть все основные элементы стандартного окна Windows) и заготовки модуля формы. Это приложение можно запустить, и оно будет работать. Правда, на экране появится только прямоугольное окно, которое можно двигать, сворачивать, изменять его размеры и закрывать. Можно сказать, что простейшее приложение имеет свойства, совершенно необходимые любому приложению Windows, но ни­чего «лишнего».

 

Чтобы написать по-настоящему полезное приложение, нужно разместить на форме компоненты, обеспечивающие взаимодействие программы с пользователем (интерфейс), установить их свойства и написать проце­дуры-обработчики, которые будут выполняться при возникновении тех или иных событий в приложении (функциональная часть программы). Ви­зуальная часть интерфейса приложения создаётся в Конструкторе формы, а его функциональная часть - в Редакторе кода.

 

В компьютерной литературе принято начинать программирование с со­здания приложения, выводящего на экран надпись Helloworld!. Мы не станем нарушать эту похвальную традицию, а только «русифицируем» со­общение. Давайте поздравим всех пользователей программы с нашим лю­бимым праздником.

Запустите Delphiи начните новый проект.

 

В окне Конструктора формы появится унылая серая форма. Выкрасим её в «зимний», белый цвет. Для этого нажмите в Инспекторе объектов в строке Colorкнопочку со стрелкой. Откроется список со стандартными цветами Delphiи Windows. Слева от названия цвета в этом списке имеется и образец

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

Щёлкните мышкой на строке с белым цветом (clWhite) - и форма станет снежно-белой. Точно так же устанавливается цвет любого визуального компонента.

Вывести надпись на форму можно разными способами. Лучше всего вос­пользоваться компонентом метка TLabel, специально для этого предна­значенным.

 

Найдите в Палитре компонентов значок Tlabel (он находит­ся на странице Standard) и щёлкните на нём два раза. В середине формы появится этот компонент с надписью Label1. Измените в Инспекторе объ­ектов значение свойства Captionэтого компонента на С Новым годом! (просто введите эту строку в текстовом окошке справа от названия свой­ства)

 

Поздравление получилось слишком невзрачным, поэтому щёлкните на окошечке свойства метки Font, а затем на кнопке с тремя точками. Откро­ется диалоговое окно выбора свойств шрифта. Размер задайте побольше, например 40 (такого значения нет в списке размеров, поэтому введите нужное значение в окошечке над списком). Выберите шрифт TimesNewRoman(или любой другой по вкусу), установите атрибут полужирный и синий цвет. Теперь надпись имеет вполне праздничный вид. Оттащите её мышкой в левый верхний угол формы и размеры формы уменьшите так, чтобы не оставалось слишком много свободного места на форме (ухватите форму за нижний правый угол и перемещайте его вверх влево).

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

Сохраните кнопкой

эоект на диске в новой папке NewYear и запустите программу на Панели инструментов. Программа будет скомпилирована,

и на экране появится форма с нашим приветствием:

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

Как видите, она мало чем отличается от той, что мы видели в окне Кон­структора формы (исчезла разметочная сетка и изменилась пиктограм­ма). С этим окном вы можете делать всё, что можно делать с любыми ок­нами Windows. И это при том, что мы не написали ещё ни одной строчки кода!

Закройте приложение - оно не предназначено для долгого любования. По­пробуем сделать его «прикольным». Прикол будет незатейливым: при нажатии кнопки мыши на надписи она будет заменяться другой (предла­гаю взять её из «негритянских» рассказов юмориста Лукинского), а при отпускании восстанавливаться.

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

Выделите на форме компонент Label1 (просто щёлкните на нём мышкой) и в Инспекторе объектов перейдите на страницу Events(щёлкните на табу­ляторе сверху). Откроется список событий, на которые может реагировать наш компонент. Дважды щёлкните в окошке onmousedown, и в нём по­явится название процедуры, которая будет обрабатывать нажатие кнопки мыши на надписи:

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

 

В окне Редактора кода вы увидите заготовку для этой процедуры:

 procedure TForml.LabellMouseDown(Sender: Button; Shift: TShiftState; X, Y: Integer); begin end; TObject; Button:  TMouse; 

Конечно, ничего из задуманного нами она делать не будет. Посему доба­вим ещё две строки кода:

 procedure TForm1.Label1MouseDown(Sender: Button; Shift: TShiftState; X, Y: Integer); begin Label1.Font.Color:= clRed; Label1.Caption:= ’Пошёл на фиг!’ end; 

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

Чтобы ввести эти строчки, наберите название компонента с точкой - Labell., подождите, пока появится список со свойствами этого компонента, выберите нужный и нажмите клавишу Enter(или дважды щёлкните на нём мышкой).

«Здравствуй, мир!», или Первое приложение... усилий в Delphi XE

 

Действуя аналогично, создайте заготовку процедуры, которая будет обра­батывать отпускание кнопки мыши:

 procedure TForml.LabellMouseUp(Sender: TObject; Button: TMouseBut- ton; Shift: TShiftState; X, Y: Integer); begin end; 

Чтобы не переписывать весь код заново, скопируйте его в заготовку вто­рой процедуры.

 

Чтобы скопировать фрагмент текста, сначала выделите его. Для этого установите мышкой курсор в начало первой строки, нажмите левую кнопку мышки и ведите её в конец последней строки. Теперь отпустите и снова нажмите левую кнопку мыши на выделенном фрагменте кода и, удерживая клавишу Ctrl, переместите курсор в нужное место. Если не нажать клавишу Ctrl, то фрагмент будет пе­ремещён из одного места на другое.

 

Выделить часть текста можно и клавишами со стрелками, удержи­вая клавишу Shift.

 

Осталось слегка подредактировать текст:

 procedure TForml.LabellMouseUp(Sender:              TObject; Button: TMouseBut- ton; Shift: TShiftState; X, Y: Integer); begin Label1.Font.Color:= clBlue; Label1.Caption:= ’С Новым годом!’ end;

 

Опять запустите программу. Появится всё то же окно с банальной уже надписью. Зато теперь вы можете «поприкалываться», нажимая кнопку мыши на ней 

делфи

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

 

Вот только как они узнают о ваших злона­меренных кознях? Значит, их нужно под­вести к необдуманным поступкам. И Delphiпредоставляет немало средств начинаю­щим «хулиганам». Во-первых, вы можете установить для каждого визуального ком­понента свой собственный курсор, кото­рый будет появляться, когда мышка бега­ет по нему. В Инспекторе объектов от­кройте список доступных курсоров и вы­берите нужный

Delphi XE

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

Тогда переходите к более сильнодействующим средствам. В свойстве Hintметки напишите Нажми кнопку, а свойство ShowHintустановите в True

 

Эта подсказка появится, когда мышка замешкается на компоненте. Если и это не поможет, то оставьте свои затеи до лучших времён, когда вы изучи­те такие возможности Delphi, которые позволят вам подшучивать над кем угодно в самой обидной форме (если вы, конечно, так и не найдёте себе более достойных занятий). Пока же допишите пару строк кода, улучшаю­щих действие нашей программы:

 procedure TForml.LabellMouseDown(Sender:     TObject;    Button:    TMouse-Button; Shift: TShiftState; X, Y: Integer); begin Label1.Font.Color:= clRed; Label1.Caption:= ’Пошёл на фиг!’; Label1.Hint:= ’Отпусти - больно же!’ end; procedure TForm1.Label1MouseUp(Sender:              TObject; Button: TMouseBut- ton; Shift: TShiftState; X, Y: Integer); begin Label1.Font.Color:= clBlue; Label1.Caption:= ’С Новым годом!’; Label1.Hint:= ’Нажми кнопку!’ end; 

Lazarusтоже годится для милых розыгрышей.

������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: