Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oop-VisualWorks.pdf
Скачиваний:
28
Добавлен:
13.02.2015
Размер:
1.23 Mб
Скачать

2.3. Разработка простого приложения

39

Проверим правильность установки системной переменной $(VISUALWORKS), которую VisualWorks устанавливает при инсталляции и которая хранит домашний каталог инсталляции. Если по каким-то причинам это не сделало или сделано не верно, некоторые инструменты среды будут работать не правильно. Например, нельзя будет увидеть исходный текст из библиотеки классов или файлы загрузки дополнительных инструментов. Следует проверить правильность определения домашнего каталога, для чего выбрать в левой списковой панели строку System, в поле ввода VisualWorks home directory: ввести или выбрать (нажимая кнопку Browse. . . ) путь к домашнему каталогу (если он установлен не правильно), и, наконец, сохранить изменения. На эту же страницу окна установок параметров среды можно попасть, выбирая в стартовом окне команду меню File → Set VisualWorks Home. . . .

На странице Source полезно выбрать одну из двух радио-кнопок, определяя в каком формате будет сохраняться смолтоковский код в текстовых файлах при выполнении команд File Out и File Out As. . . : в «старом» формате порций данных (Chunk Format), или в «новом» формате XML (XML Format), который используется по умолчанию. Формат порций необходим только тогда, когда предстоит переносить код в другие смолтоковские среды, не понимающие файлов в XML-формате.

Установки среды можно сохранить, выбирая сначала команду Save. . .

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

2.3. Разработка простого приложения

Уже стало традицией начинать изучение нового языка или знакомство с новой средой примером Hello, World! (Привет, Мир!). Не будем нарушать традиций!

Самый простой способ решить такую задачу в VisualWorks— открыть новое рабочее окно командой меню Tools → Workspace, в его текстовой панели обычным образом ввести выражение (см. рис. 2.3)

Transcript cr; show:’Hello World!’; cr.

Затем выбрать в рабочем окне команду меню Smalltalk → Do It. . . , отображая Hello World! в текстовой панели Transcript стартового окна.

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

40

Глава 2. Прогулка по VisualWorks

Рис. 2.3: Простой способ вывода строки Hello, World!.

Это потребует, во-первых, создания одного класса и одного метода в этом классе, и во-вторых, создания загрузочного модуля для автономного запуска приложения.

Создание класса

Чтобы написать программу, воспользуемся основным инструментом среды VisualWorks— системным браузером, окно которого открывается командой меню Browse → System) основного окна среды. Системный браузер позволяет работать с кодом, определяющим все объекты среды (см. главу 6). Объём уже включенного в среду исходного текста огромен. В нём легко заблудиться! Наша задача: сосредоточиться на тех частях системы, которые нужны для разработки приложения, и проигнорировать остальное. Для этого воспользуемся инструментами, позволяющие организовать создаваемый код и удобно работать с ним.

В левой верхней панели браузера системы в виде дерева перечисляются пакеты (или, по-другому, категории) и связки пакетов, содержащие

2.3. Разработка простого приложения

41

Рис. 2.4: Окно системного браузера.

код среды. Чтобы создаваемая программа не затерялась, отделим её от исходного текста среды, создавая собственный пакет. Для этого выберем в системном браузере команду меню Package → New Package. . . , в появившемся диалоговом окне введём имя пакета, скажем, Hello World и нажмём кнопку OK. Определённый пакет окажется выбранным в дереве пакетов и связок пакетов. Это то место, где мы будем работать.

Чтобы сосредоточиться на создаваемой программе, можно открыть новый браузер — браузер пакета, отображающий содержимое только данного пакета. При выбранном пакете Hello World, выберем в системном браузере команду меню Package → Spawn. Панели нового браузера пусты, но сам браузер имеет заголовок, указывающий, что он относится к пакету Hello World (см. рис. 2.5).

Теперь создадим новый класс. В браузере пакета, выберем пункт меню Class → New Class. . . , открывая диалоговое окно создания класса.

Знак «Внимание!» (желтый треугольник с восклицательным знаком) в диалоговом окне определения любого объекта указывает на поле ввода, требующее обязательного заполнения.

В данном случае — это поле ввода имени класса. Напечатаем в нём имя HelloWorld (в отличие от имени пакета, в имя класса пробел вставлять нельзя!). Остальные поля оставим со значениями по умолчанию и нажмём кнопку OK. Класс будет создан (скомпилирован), добавлен в

42

Глава 2. Прогулка по VisualWorks

пакет, а его имя отобразится в браузере пакета (и в системном браузере, если он остался открытым).

Рис. 2.5: Окно браузера для пакета HelloWorld.

Создадим метод, выполняющий основную работу. Код метода должен открывать диалоговое окно, отображающее строку ’Hello, World!’, а затем закрывать его, когда пользователь щелкает на кнопке Hello. Воспользуемся методом класса choose:lables:values:default: из класса Dialog, уже определенных в среде в одном из системных пакетов. В браузере пакета выберем класс HelloWorld, затем категорию (или, другими словами, протокол) методов экземпляра initialize-release и, наконец, метод с именем initialize. Всё это было создано средой в момент создания класса. Заменим код метода, предлагаемый средой, на следующий

initialize

Dialog choose: ’Hello, World!’ labels: (Array with: ’Hello’) values: #(nil)

default: nil.

Выбирая в браузере пакета команду меню Edit → Accept или нажимая клавиши Ctrl + S ), сохраним изменения. Можно проверить, как код работает, для чего напечатаем в рабочем окне текст HelloWorld new, выберем его и выполним, выбирая команду меню Smalltalk → Do It или нажимая клавиши Ctrl + D (см. рис. 2.6).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]