PostHeaderIconУрок2. Реакции на события. Компонент F1Book


Часть урока для новичков

Здравствуйте. В этом уроке мы с вами немного расширим наши знания, напишем простую рабочую программу.

Запускаем для начала Delphi.
Напишем простую программу реакции нажатия на кнопку. Как вы уже заметили из этих нескольких запусков Delphi, сразу открывается новый пустой проект. Нам предлагается начать новый проект.

Как вы помните, проектируемая форма или окно, которое будет видеть пользователь при запуске программы на выполнение, по умолчанию называется Form1. Перед расположением на ней кнопок, давайте его назовем как-нибудь по-русски. Например: "Это моя программа!". Это можно сделать в инспекторе объектов (Object Inspector). Там отображаются свойства выбранных компонентов на форме. Поскольку на форме ничего пока нет, то выбранной считается сама форма Form1 (выбранный элемент можно увидеть в самом верху инспектора объектов в ниспадающем списке). Меняем заголовок проектируемой формы. Свойство Caption на страничке свойств Properties. Пишем в редактируемом поле правее фразу заголовка. Во время ввода названия обратите внимание - набираемый текст немедленно в точности повторяется на форме. Об этом и говорилось в прошлом уроке. Мы с вами видим результат своей работы еще до запуска программы на выполнение.


Если во время работы вас стесняют размеры окон инспектора объектов, проектируемой формы, редактора кода или они наоборот, выглядят великовато, поменяйте их размеры, отпозиционируйте в удобное место.


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

Примечание: при подведении мышки на палитру компонентов выскакивает всплывающая подсказка, объясняющая пользователю ее название.

Итак, мы щелкнули по этому компоненту и он остался нажатым. Теперь необходимо щелкнуть на нашей форме, где мы хотели бы эту кнопку оставить. Повторите эту операцию еще два раза, пока на форме не окажется три кнопки Button1, Button2, Button3. Попробуйте подвигать эти кнопки по форме при нажатой левой клавишей мышки. Установите их в произвольном порядке, но чтобы они не мешали друг другу.

Теперь назовем эти кнопки по их дальнейшему функциональному назначению. Щелкаем один раз (!) по кнопке Button1. Она оказывается выделенной. В инспекторе объектов моментально отображаются все доступные свойства для этой кнопки. Меняем название кнопки, как вы догадываетесь, тоже сменой свойства Caption. Пишем: "Свернуть". Далее выбираем кнопку Button2. Переименовываем ее в "Белая". Повторим операцию смены названия для третьей кнопки "Закрыть".

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

Теперь немного поработаем руками и головой.

Задействуем последний нетронутый нами элемент Delphi - редактор кода. Как можно догадываться, и как упоминалось в прошлом уроке, тут происходит ручной набор некого программного кода, именуемого языком программирования Object Pascal. Но не стоит сразу его пугаться. Это довольно несложный в изучении язык, тем более, что для его достижения, Delphi предоставляет прекрасные возможности. Минимум набора текста, дополнение кода, шаблоны кода, контекстный список параметров. Все это намного упрощает жизнь программисту.

Для начала рассмотрим поподробнее такое понятие, как реакции на события.

Реакция на события. Что же это такое? Не буду описывать всех тонкостей работы операционной системы Windows, расскажу лишь на пальцах. Допустим, вы запустили любую программу на выполнение. Сами того не зная, вы породили кучу событий, передаваемых этому приложению. Во первых до непосредственного создания любого окна в памяти, Windows посылает сообщение приложению: "окно сейчас будет создано". Или такие: "Окно сейчас будет активизировано", "Окно сейчас отобразится". Но на простом примере, непосредственно касающегося нас, скажу, когда вы нажимаете на любую кнопку, Windows посылает сообщение приложению: "По такой-то кнопке щелкнули". И если программист использовал это сообщение и написал реакцию на него, то программа выполнит ее.

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

procedure TForm1.Button3Click(Sender: TObject);
begin

end;

Указатель (курсор) находится между словом begin и end. Именно там и напишем команду программного закрытия окна, аналогично действию системной кнопки в заголовке окна. Поскольку это окно единственное и главное, то будет закрыта и вся программа.

Если действие касается окна, а его имя Form1, то указываем ссылку на это окно. Имя, но не текст, который оно отображает. Имя - это свойство Name.

Набираем вручную Form1. Теперь надо добраться до вложенных в него свойств и процедур. Для этого ставим точку. Через несколько секунд Delphi Выводит для нас дополнение кода.


Это подобие списка доступных констант, переменных, функций для данного объекта (Form1). Набираем Close. Обратите внимание, дополнение кода помогает в наборе, и указывает на существующую функцию, выбрав в списке слово Close. Если этот случай касается сравнительно длинных названий, то выбрать необходимое можно в списке стрелками перемещения указателя или мышкой. Завершение ввода из списка дополнения кода осуществляется нажатием на кнопку Enter, точка, точка с запятой, пробел, открывающаяся скобка (в зависимости от ситуации). Мы поставим точку с запятой. Итак наше описание реакции на нажатия на кнопку "Закрыть" выглядит следующим образом:

Form1.Close;

Если нажать на эту кнопку, в момент работы программы конечно, это окно закроется. Напишем реакции на нажатия на другие кнопки Button1 и Button2.

Рассмотрим еще один компонент Application. Это особый компонент. Его свойства недоступны для инспектора объектов потому, что он доступен только во время запуска приложения на выполнение и следовательно его нет на палитре компонентов. Application - это ссылка (или переменная) на ваше работающее приложение. Delphi автоматически создает данный компонент в связи с его обязательным присутствием.

Первая наша кнопка "Свернуть" или Button1 должна осуществлять свертывание проекта в панель задач. Поэтому пишем реакцию на ее нажатие. Дважды щелкаем по ней. В редакторе кода пишем, используя знания написания команд предыдущего случая.

Application.Minimize;

Для кнопки "Развернуть" реакция нажатия выглядит как:

Form1.Color:=clWhite;

Примечание: обратите внимание на точку с запятой в конце строки. Ее присутствие обязательно и она означает окончание команды. Обратите внимание на знак присваивания := (двоеточие и знак равно). Этот знак изначает, что свойству или переменной слева присваивается значение, указанное справа.

Что же произойдет при нажатии на эту кнопку. Окно программы окрасится в белый цвет. Для этого в свойство Color компонента программы Form1 заносится константа белого цвета. По желанию можно поэкспериментировать с другими цветами, поставив в форму еще несколько кнопок и задавая цвет при нажатия на них clBlack, clNavy и т.п. (перечень всех доступных цветов см. свойство Color в Object Inspector, и не забудьте для этого выбрать форму Form1 одинарным щелчком).

Если нажать на кнопку "Свернуть", то программа свернется в панель задач.

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

Не забудьте сохранить проект на диске "Save All", как это было сказано в прошлом уроке, в отдельный каталог. Например "Урок2" или "Lesson2". Таким образом вы всегда будите знать где находится ваша программа, написанная с помощью того или иного урока.


Часть урока для продвинутых программистов

Речь в данном разделе пойдет о не совсем распространенном, но таком интересном, с точки зрения организации отчетов, компоненте F1Book (Formula One) из палитры компонентов ActiveX.

Данный компонент является подобием табличной многостраничной таблицы Excel, с формулами, сеткой, границы и заливка и т.п. Кроме того от совместим с файловым форматом Excel 5. Файлы такого формата можно считывать с диска, обрабатывать, записывать на диск. При работе с компонентом F1Book, можно создавать произвольные отчеты произвольной формы программно, или вручную в момент отображения самой таблицы. Присутствует функции вывода на принтер, задания области печати, полей страницы, масштаба. Большая схожесть с программой MS Excel.

Но существует и проблема. F1Book является VCI ActiveX объектом и требует регистрации в системе для его использования в пользовательских приложениях на другом компьютере. При инсталляции Delphi делает это автоматически. Устанавливает необходимые библиотеки в системный каталог, регистрирует в реестре. Если такую программу запустить на машине, где отсутствует Delphi, программа выдаст ошибку выполнения, наподобие "класс не зарегистрирован". Но остальная часть программы может и работать, несмотря на это, если эта таблица не находится в главном окне, и ее во время работы не открывать.

Что говорит хэлп этого компонента по этому поводу: "Вы можете отправить следующие файлы со своим приложением" и приводится список файлов библиотек. Но про регистацию компонента в реестре Windows не сказано. Если вы являетесь специалистом и можете самостоятельно зарегистрировать эти библиотеки - пожалуйста. Получится, такая себе обрезанная версия без возможности печати и программного редактирования. Можно, конечно обратиться за технической помощью на торговый сайт или сделать заказ по почте или телефону. Это не серьезно. Вот как эта Formula регистрируется. Повторяю, это производится на компьютере, где Delphi не установлен.

Необходимо скопировать в каталог %WINDOWS_DIR%\SYSTEM следующие файлы:

VCF132.OCX
MFCANS32.DLL
OC30.DLL
MSVCRT20.DLL


Эти файлы находятся в аналогичном каталоге на компьютере, где есть Delphi.

Далее запустить файл регистрации. Файл регистрации компонента F1Book можно скачать здесь.

Учтите, что этот файл создан для регистрации библиотек в системном виндоувском каталоге C:\WINDOWS\SYSTEM. Если у вас он звучит по другому, следует подкорректировать этот файл вручную, исправив соответствующие строки.

Идеальным случаем установки программы, с задействованным компонентом Formula One будет применение инсталляционной упаковочной программы типа Wise или InstallShield, куда можно упаковать все необходимые файлы программы и библиотеки компонента с последующей корректной регистрацией.

А кто не пробовал экспериментировать с этим компонентом - попробуйте. Не пожалеете.


© www.nmarket.ru - при перепечатке прямая ссылка обязательна
 
Copyright © 2007-2010 IsIProg.ru. All Rights Reserved.