Руководство разработчика. Hello World!
SYSDBA (обсуждение | вклад) (Новая страница: «Со времен ветхого завета в мире программирования принято начинать знакомство с новой сис…») |
SYSDBA (обсуждение | вклад) (→Создаем экранную форму) |
||
| Строка 78: | Строка 78: | ||
==Создаем экранную форму== | ==Создаем экранную форму== | ||
| + | |||
| + | Любая современная среда быстрой разработки должна содержать инструменты визуального проектирования экранных форм. Гедымин в этом плане не является исключением. В предыдущих примерах мы использовали стандартное окно для вывода текстовых сообщений, посланное нам свыше создателями операционной системы. Попробуем повторить Творца и самостоятельно создать экранную форму. | ||
| + | |||
| + | Для этого обратимся к Редактору форм. Соответствующий пункт находится в меню Сервис главного окна программы. | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.FormEditor.png | ||
| + | </imgtag> | ||
| + | |||
| + | Как видно на рисунке, окно редактора содержит список форм, находящихся в данный момент в базе данных, и набор кнопок для осуществления действий над ними. Нас интересует команда Создать. Выберем соответствующую кнопку. На экране откроется мастер создания экранной формы: | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.NewForm1.png | ||
| + | </imgtag> | ||
| + | |||
| + | Оставим ответ на вопрос «Чем отличается простая форма от наследуемой?» для последующих глав. Не будем менять выбор по-умолчанию – Простая форма – и нажмем кнопку Вперед. | ||
| + | |||
| + | Следующая страница мастера предлагает нам ввести имя типа создаваемой формы. | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.NewForm2.png | ||
| + | </imgtag> | ||
| + | |||
| + | Внимательно ознакомимся с правилами, которым должно соответствовать имя и введем в поле ввода строку “HelloWorld”. Обратите внимание, что каждое имя типа формы автоматически получает префикс “usrf_”, т.е. в тексте программы мы будем обращаться к созданному нами типу, как “usrf_HelloWorld”. | ||
| + | |||
| + | После того как имя введено, нажимаем Вперед и попадаем на финальную страницу мастера: | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.NewForm3.png | ||
| + | </imgtag> | ||
| + | |||
| + | Убедимся, что мы не допустили ошибок в наименовании типа и нажмем Ок (если ошибки все-таки есть, то с помощью кнопки Назад можно вернуться и исправить их). | ||
| + | |||
| + | С этого момента начинается самое интересное. Гедымин переключится в режим Дизайнера форм. На экране появятся три окна. Проектируемая нами форма в исходном, девственно чистом состоянии: | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer1.png | ||
| + | </imgtag> | ||
| + | |||
| + | '''Инспектор объектов:''' | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer2.png | ||
| + | </imgtag> | ||
| + | |||
| + | '''Палитра компонентов:''' | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer3.png | ||
| + | </imgtag> | ||
| + | |||
| + | ==Принципы визуального проектирования== | ||
| + | |||
| + | Для читателя, не знакомого с такими средами разработки, как Borland Delphi<ref>С 2006 года разрабатывается поставляется компанией CodeGear под названием CodeGear Delphi.</ref> или Microsoft Visual Studio, поясним основные принципы. Палитра компонентов содержит доступные нам визуальные и невизуальные компоненты, например, кнопки, списки, переключатели, флажки, поля ввода и т.д. Поскольку компонентов много, во избежании путаницы они тематически сгруппированы и размещены на нескольких вкладках. Для выбора компонента мы открываем нужную вкладку и щелкаем мышью по его пиктограммке. Затем щелкаем по тому месту на форме, где мы хотели бы этот компонент разместить. | ||
| + | |||
| + | Изменить свойства компонента на форме можно следующим образом: | ||
| + | |||
| + | # Находим компонент и выделяем одинарным щелчком мыши. Для изменения свойств самой формы, необходимо щелкнуть мышью по свободному пространству на ней; | ||
| + | # переходим в окно Инспектора объектов; | ||
| + | # находим в списке нужное свойство и устанавливаем его значение. | ||
| + | |||
| + | '''''Совет:''' Для быстрого перехода в Инспектор объектов используйте клавишу F11, а для активизации Палитры компонентов – F10.'' | ||
| + | |||
| + | Перейдем от теории к практике. Для настройки нашей формы сделаем следующее: | ||
| + | |||
| + | 1. Перейдем в Инспектор объектов и установим следющие свойства: | ||
| + | |||
| + | BorderStyle = bsDialog | ||
| + | Caption = Hello World! | ||
| + | Color = clBlue | ||
| + | Position = poScreenCenter | ||
| + | |||
| + | 2. На вкладке Стандартные палитры компонентов найдем и выделим компонент TLabel (ее пиктограммка имеед вид прописной буквы А). | ||
| + | 3. Поместим ее на форму и установим следующие свойства: | ||
| + | |||
| + | Align = alClient | ||
| + | Alignment = taCenter | ||
| + | Layout = tlCenter | ||
| + | |||
| + | 4. Найдем в Инспекторе объектов свойство Font. Обратите внимание на изображение плюса слева от наименования свойства. Щелкнув по нему мы раскроем список свойств шрифта: | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer4.png | ||
| + | </imgtag> | ||
| + | |||
| + | 5. Установим следющие значения, как показано на рисунке: | ||
| + | |||
| + | Font.Color = clYellow | ||
| + | Font.Name = Tahoma | ||
| + | Font.Size = 18 | ||
| + | Font.Style.Bold = True | ||
| + | |||
| + | 6. После проделанных манипуляций форма должна принять вид: | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer5.png | ||
| + | </imgtag> | ||
| + | |||
| + | 7. Запомним название компонента TLabel – usrg_Label1. Сохраним форму и выйдем из режима дизайнера. Пиктограммка команды Сохранить и выйти находится на Палитре компонентов (см. Рис. 63). Можно также воспользоваться горячей клавишей F2. | ||
| + | |||
| + | <imgtag width="320px" link="on"> | ||
| + | http://gsbelarus.com/gs/images/gs/2011/NewDevGuide/HelloWorld.Designer6.png | ||
| + | </imgtag> | ||
| + | |||
| + | 8. Закрываем окно Редактора форм с помощью кнопки Закрыть. | ||
| + | |||
| + | ==Создаем форму из макроса== | ||
====Примечания==== | ====Примечания==== | ||
<references/> | <references/> | ||
Версия 18:10, 13 октября 2011
Со времен ветхого завета в мире программирования принято начинать знакомство с новой системой написанием простейшей программы вывода на экран строки "Hello World!". Будем придерживаться канонов. Читатель, уже знакомый с тем, как на Гедымине пишется программный код и создаются экранные формы, без малейших для себя последствий может пропустить эту главу. Мы же выполним следующие действия:
- Запустим Гедымин и подключимся к демо базе под учетной записью Administrator.
- В главном окне программы раскроем меню Сервис и вызовем команду Редактор скрипт-объектов.
- Найдем окно Проводник, в дереве выделим пункт Глобальные макросы[1] и нажмем правую кнопку мыши.
- Из появившегося меню выберем команду Добавить макрос, как показано на рисунке ниже:
<imgtag width="320px" link="on">
</imgtag>
Совет: При первом обращении Редактор скрипт-объектов может содержать вспомогательные окна, такие как: Список переменных, Стек вызовов, Сообщения и др. Для экономии экранного пространства их можно закрыть. Если вы случайно закрыли окно Проводника, вернуть на экран его можно с помощью комбинации горячих клавиш Ctrl-Alt-T или воспользовавшись меню Окна Редактора скрипт-объектов (не путайте с меню Окна главного окна Гедымина).
По выполнении вышеуказанных действий на рабочем поле Редактора скрипт-объектов откроется окно редактирования макроса.
<imgtag width="580px" link="on">
</imgtag>
Пусть вас не смущает обилие полей ввода. В следующих главах мы подробно ознакомимся с предназначением каждого из них. А пока, наберем в поле Наименование макроса строку "Hello World!", а в поле Наименование функции – "HelloWorld" (Естественно, кавычки не являются частью строки и вводить их не следует. Они используются в тексте исключительно для выделения. Пробелы в имени функции недопустимы).
Далее, перейдем на вкладку Скрипт и наберем такой текст процедуры:
Option Explicit Sub HelloWorld Application.MessageBox "Hello World!", "", vbOkOnly End Sub
Результат наших усилий приведен ниже:
<imgtag width="580px" link="on">
</imgtag>
По окончании ввода нажмем клавишу F9 для выполнения нашей программы. Если текст набран без синтаксических ошибок, то на экране появится следующее диалоговое окно:
<imgtag link="on">
</imgtag>
Ура! Наше первое приложение успешно работает.
Содержание |
Обращаемся к базе данных
Пусть мы и достигли поставленной цели, но очевидно, что однострочная процедура вряд ли позволит нам составить даже самое поверхностное впечатление о возможностях платформы. Давайте усложним задачу и заставим нашу программу приветствовать не только весь мир, но и лично пользователя. Персональную информацию, имя учетной записи, возьмем непосредственно из базы данных. Код второй версии процедуры HelloWorld выглядит следующим образом[2]:
01 Option Explicit 02 Sub HelloWorld 03 Dim gdcUser 04 Set gdcUser = Designer.CreateObject(Application,_ 05 "TgdcUser", "") 06 gdcUser.SubSet = "ByID" 07 gdcUser.ID = IBLogin.UserKey 08 gdcUser.Open 09 10 Application.MessageBox "Hello World!" & vbCrLf &_ 11 "Hello " & gdcUser.ObjectName & "!", _ 12 "", vbOkOnly 13 14 Designer.DestroyObject(gdcUser) 15 End Sub
Прежде чем привести нашу процедуру в действие поясним некоторые нюансы.
Мы можем обращаться к функциям и параметрам Гедымина через набор глобальных объектов. В данном случае используются три таковых: глобальный объект Designer предназначен для динамического создания и уничтожения объектов в процессе работы программы, IBLogin – содержит параметры текущего подключения к базе данных, а Application – среди прочих – обладает функцией вывода на экран окна с сообщением.
В четвертой строке представленного кода, вызовом метода Designer.CreateObject, создается бизнес-объект типа TgdcUser и, для дальнейшего обращения, сохраняется в объявленной строкой выше переменной gdcUser. В шестой строке мы указываем, что будем работать только с одной записью, которую отыщем по идентификатору. В следующей строке мы передаем бизнес-объекту этот идентификатор, взяв его из свойства IBLogin.UserKey. В восьмой строке мы открываем набор данных методом gdcUser.Open и используем считанное из базы имя при формировании текста приветствия и выводе его на экран (строки с десятой по двенадцатую). И, наконец, закончив работу с бизнес-объектом, в четырнадцатой строке мы удаляем его с помощью метода Designer.DestroyObject.
Теперь, когда код процедуры уже не представляет для нас загадки, можем смело нажимать клавишу F9 и созерцать на экране результат наших трудов:
<imgtag link="on">
</imgtag>
Создаем экранную форму
Любая современная среда быстрой разработки должна содержать инструменты визуального проектирования экранных форм. Гедымин в этом плане не является исключением. В предыдущих примерах мы использовали стандартное окно для вывода текстовых сообщений, посланное нам свыше создателями операционной системы. Попробуем повторить Творца и самостоятельно создать экранную форму.
Для этого обратимся к Редактору форм. Соответствующий пункт находится в меню Сервис главного окна программы.
<imgtag width="320px" link="on">
</imgtag>
Как видно на рисунке, окно редактора содержит список форм, находящихся в данный момент в базе данных, и набор кнопок для осуществления действий над ними. Нас интересует команда Создать. Выберем соответствующую кнопку. На экране откроется мастер создания экранной формы:
<imgtag width="320px" link="on">
</imgtag>
Оставим ответ на вопрос «Чем отличается простая форма от наследуемой?» для последующих глав. Не будем менять выбор по-умолчанию – Простая форма – и нажмем кнопку Вперед.
Следующая страница мастера предлагает нам ввести имя типа создаваемой формы.
<imgtag width="320px" link="on">
</imgtag>
Внимательно ознакомимся с правилами, которым должно соответствовать имя и введем в поле ввода строку “HelloWorld”. Обратите внимание, что каждое имя типа формы автоматически получает префикс “usrf_”, т.е. в тексте программы мы будем обращаться к созданному нами типу, как “usrf_HelloWorld”.
После того как имя введено, нажимаем Вперед и попадаем на финальную страницу мастера:
<imgtag width="320px" link="on">
</imgtag>
Убедимся, что мы не допустили ошибок в наименовании типа и нажмем Ок (если ошибки все-таки есть, то с помощью кнопки Назад можно вернуться и исправить их).
С этого момента начинается самое интересное. Гедымин переключится в режим Дизайнера форм. На экране появятся три окна. Проектируемая нами форма в исходном, девственно чистом состоянии:
<imgtag width="320px" link="on">
</imgtag>
Инспектор объектов:
<imgtag width="320px" link="on">
</imgtag>
Палитра компонентов:
<imgtag width="320px" link="on">
</imgtag>
Принципы визуального проектирования
Для читателя, не знакомого с такими средами разработки, как Borland Delphi[3] или Microsoft Visual Studio, поясним основные принципы. Палитра компонентов содержит доступные нам визуальные и невизуальные компоненты, например, кнопки, списки, переключатели, флажки, поля ввода и т.д. Поскольку компонентов много, во избежании путаницы они тематически сгруппированы и размещены на нескольких вкладках. Для выбора компонента мы открываем нужную вкладку и щелкаем мышью по его пиктограммке. Затем щелкаем по тому месту на форме, где мы хотели бы этот компонент разместить.
Изменить свойства компонента на форме можно следующим образом:
- Находим компонент и выделяем одинарным щелчком мыши. Для изменения свойств самой формы, необходимо щелкнуть мышью по свободному пространству на ней;
- переходим в окно Инспектора объектов;
- находим в списке нужное свойство и устанавливаем его значение.
Совет: Для быстрого перехода в Инспектор объектов используйте клавишу F11, а для активизации Палитры компонентов – F10.
Перейдем от теории к практике. Для настройки нашей формы сделаем следующее:
1. Перейдем в Инспектор объектов и установим следющие свойства:
BorderStyle = bsDialog Caption = Hello World! Color = clBlue Position = poScreenCenter
2. На вкладке Стандартные палитры компонентов найдем и выделим компонент TLabel (ее пиктограммка имеед вид прописной буквы А). 3. Поместим ее на форму и установим следующие свойства:
Align = alClient Alignment = taCenter Layout = tlCenter
4. Найдем в Инспекторе объектов свойство Font. Обратите внимание на изображение плюса слева от наименования свойства. Щелкнув по нему мы раскроем список свойств шрифта:
<imgtag width="320px" link="on">
</imgtag>
5. Установим следющие значения, как показано на рисунке:
Font.Color = clYellow Font.Name = Tahoma Font.Size = 18 Font.Style.Bold = True
6. После проделанных манипуляций форма должна принять вид:
<imgtag width="320px" link="on">
</imgtag>
7. Запомним название компонента TLabel – usrg_Label1. Сохраним форму и выйдем из режима дизайнера. Пиктограммка команды Сохранить и выйти находится на Палитре компонентов (см. Рис. 63). Можно также воспользоваться горячей клавишей F2.
<imgtag width="320px" link="on">
</imgtag>
8. Закрываем окно Редактора форм с помощью кнопки Закрыть.
Создаем форму из макроса
Примечания
- ↑ Обратите внимание, что ветвь Глобальные макросы присутствует только в модуле APPLICATION. Выбор текущего модуля осуществляется из выпадающего списка над деревом объектов Проводника.
- ↑ При наборе текста процедуры, номера строк следует опустить.
- ↑ С 2006 года разрабатывается поставляется компанией CodeGear под названием CodeGear Delphi.