Вы находитесь на странице: 1из 465

УДК

681.3.068+800.92Visual

FoxPro

ББК

32.973.26-018.1

 

Ш24

Ш24

Шапорев Д. С. Visual FoxPro. Уроки программирования. — СПб.: БХВ-Петербург, -

2005.

480

с:

ил.

ISBN 5-94157-627-7

В виде уроков, в форме веселого диалога с читателем рассмотрены ос­ новные приемы работы с СУБД Visual FoxPro — от способов запуска про­ граммы и описания пользовательского интерфейса до создания собственной компьютерной игры. Описаны разработка и особенности работы с основ­ ными объектами Visual FoxPro, такими как классы, таблицы, запросы, формы, представления и отчеты. Уделено внимание внедрению OLE-объ­ ектов, использованию компонентов ActiveX и библиотек классов, а также экспорту и импорту данных в другие приложения. Показано, как создавать справочную систему, установочный диск приложения. Рассмотрено приме­ нение методов объектно-ориентированного программирования в Visual FoxPro:

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

Для начинающих программистов

УДК 681.3.068+800.92Visual

FoxPro

ББК

32.973.26-018.1

Группа подготовки издания:

Главный редактор Зам. главного редактора Зав. редакцией Редактор Компьютерная верстка Корректор Дизайн обложки Зав. производством

Екатерина Кондукова Игорь Шишигин Григорий Добин Екатерина Капалыгина Ольги Сергиенко Зинаида Дмитриева Игоря Цырульникова Николай Тверских

Лицензия ИД № 02429 от 24.07.00. Подписано в печать 22.04.05. Формат 70x100Vi e . Печать офсетная. Усл. печ. л. 38,7. Тираж 3000 экз. Заказ No 1002 "БХВ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 5Б.

Санитарно-эпидемиологическое заключение на продукцию № 77.99.02.953.Д.006421.11.04 от 11.11.2004 г. выдано Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека.

Отпечатано с готовых диапозитивов в ГУЛ "Типография "Наука" 199034, Санкт-Петербург, 9 линия, 12

Оглавление

Введение 9 Для чего я написал эту книгу? Немного истории, или
Введение
9
Для чего я написал эту книгу?
Немного истории, или рождение старого лиса
Что нового в СУБД Visual FoxPro?
9
10
11
ЧАСТЬ I. ПРОЦЕДУРНОЕ ПРОГРАММИРОВАНИЕ
В VISUAL FOXPRO
13
Урок 1. Начинаем работать!
15
Что такое база данных?
Таблицы
СУБД
15
16
18
Урок 2. Запуск Visual FoxPro
19
Урок 3. Главное окно Visual FoxPro
24
Заголовок
Главное (системное) меню Visual FoxPro
А как выполнить команду меню?
Как отменить выполнение команды меню?
Панель инструментов
Рабочий стол
Командное окно
Строка состояния
24
25
33
34
34
36
36
38
Урок 4. Знакомство с диспетчером проекта
40
Урок 5. Первое приложение
45
Урок 6. Экранная форма. Первое знакомство
55
Окно конструктора форм (Form Designer)
Окно свойств (Properties)
Конструирование экранной формы
56
60
63

4

Оглавление

Размещение элементов управления в экранной форме

66

Операторы

75

"Украшение" формы

77

Запуск формы на выполнение

78

Урок 7. Использование переменных

81

Практическое использование переменных

83

Урок 8. Массивы

88

Урок 9. Добавление записей в таблицу

90

Урок

10. Перемещение по записям таблицы

97

Использование построителя для объекта CommandGroup

97

Удаление записей

102

Создание экранной формы с использованием мастера Form Wizard

105

Создание экранной формы с использованием мастера AutoForm Wizard

109

Урок 11. Создание отчетов

111

Окно конструктора отчетов

111

Размещение в отчете элементов управления

114

Размещение в отчете полей

117

Формат данных

118

Определение условий печати

120

Размещение в отчете линий и контуров

122

Заголовок отчета и итоговые значения

122

Изменение цвета объектов в отчете

125

Размещение в отчете изображений

125

Просмотр отчета

126

Печать отчетов

128

Создание отчетов с использованием мастера Report Wizard

131

Вызов отчета из формы

136

Урок

12. Компиляция проекта

139

Урок

13.

Работа с базой данных

143

Конструктор базы данных

143

Индексы

146

Простые индексы

147

Составные индексы

147

Создание постоянных отношений

149

Referential Integrity Builder

152

Идентификаторы

154

Хранимые процедуры

157

Триггеры

159

Практическое использование триггеров

160

Контроль достоверности ввода данных

165

Оглавление

5

Урок 14 . Экранная форма. Продолжение знакомства

167

Объект ListBox

167

Пример использования

168

Раскрывающийся список (ComboBox)

172

Переключатели (OptionGroup)

173

Контейнер (Container)

176

Счетчик (Spinner)

176

Группа вкладок (PageFrame)

177

Флажок (Checkbox)

179

Лини я (Line)

180

Контур (Shape)

182

Изображение (Image)

183

Таблица (Grid)

183

Урок 15 . Выборка, упорядочение и просмотр данных

197

Команда LOCATE. Поиск записей

198

Команда SEEK. Поиск по значению индекса

199

Команда

SET FILTER TO. Выбор группы записей

199

Сортировка данных в таблицах

200

Урок 16. Создание и использование запросов

203

Конструктор запросов (Query Designer)

203

Типы внешних объединений

209

Использование в запросе фильтров с несколькими условиями

212

Вывод результатов запроса

216

Курсор

217

Таблица

217

График

218

Экран

220

Отчет

221

Этикетка (почтовая наклейка)

222

HTML

227

SQL-инструкция SELECT или как все это сделать "вручную"?

230

Подзапросы

233

Использование HAVING

236

Использование переменных в SQL-инструкциях SELECT

236

Построение перекрестых таблиц

237

Использование SQL-инструкций в программах

243

Урок 17. Использование представлений данных (видов)

244

Создание нового представления данных

244

Параметры представления данных

251

Использование представления данных в отчете

253

Урок 18. Внедрение OLE-объектов

257

Внедрение нового OLE-объекта

260

Связывание OLE-объекта

263

6

Оглавление

Удаление OLE-объекта

265

Использование функций GETDIRQ, GETFILEO и команда APPEND GENERAL

265

Урок 19. Использование компонентов ActiveX и библиотек классов

268

Использование библиотек классов

268

Компоненты ActiveX

272

Использование календаря

279

Урок 20. Экспорт и импорт данных

280

Лис и Excel

280

Урок 21. Наборы форм

293

Урок 22. Создание меню приложения

296

Использование конструктора меню

299

Command (Команда)

30 J

Submenu (Подменю)

302

Определение

клавиш быстрого доступа

303

Определение параметров меню

305

Генерация меню

306

Запуск меню

306

Запуск меню в экранной форме

308

Создание Shortcut-меню

309

Урок 23 . Создание справочной системы

311

Создание предметного указателя

321

Создание контекстно-зависимых разделов справки

324

Кнопка What's This?.

326

Урок 24. Создание ЕХЕ-приложения

328

Параметры проекта

328

Установка основной программы

329

Опция Exclude

330

Построение исполняемого файла

330

Урок 25. Создание установочных дисков

334

ЧАСТЬ И. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

343

Урок 26. Объекты

345

Классы

 

346

Композитные классы

349

Урок 27. Создание классов в Class Designer

352

Оглавление

7

Пример 2 — Puzzle

359

Другие полезные примеры

369

Урок 28. Использование таймера

380

Урок 29. Создание экранных форм на основе пользовательских классов

388

Урок

30 . Создание панели инструментов

397

Урок 31. Управление классами

401

Class Browser

401

Информация о классе и пиктограмма класса

404

Урок 32. Фундаментальные классы Visual FoxPro

407

Урок 33. Галерея компонентов (Component Gallery)

414

Панель инструментов Component Gallery

416

Работа с галереей компонентов

420

Использование галереи компонентов для создания приложения

421

Заключение

423

ПРИЛОЖЕНИ Я

425

Приложение 1. Настройка параметров конфигурации Visual FoxPro

427

Приложение 2. Возможные значения различных параметров

453

Использование диалоговых окон типа MessageBox

456

Приложение 3. Полезные советы

459

Экранные формы

459

Объект Grid

461

Добавление и удаление колонок в объекте Grid без использования Grid Builder

461

"Полосатый" Grid

462

Элемент управления TextBox

462

Элементы управления ListBox и СотЬоВох

462

Как скрыть специфичные колонки в СотЬоВох или ListBox

462

Программное раскрытие списка СотЬоВох

463

Подсказки в ListBox

463

Сохранение в списке СотЬоВох DropDown новых строк, введенных пользователем

463

Запуск других приложений из Visual FoxPro

464

Меню

464

Расширь свое системное меню

465

Панели инструментов

466

Шифрование пароля

466

Предметный указатель

467

Введение

"Никто не может бегать как лиса".

Fox Software

Здесь мы очень кратко поговорим о том, для кого и для чего предназначена эта книга, дадим небольшую историческую справку о возникновении и раз­ витии Microsoft. Visual FoxPro, а также о различиях между современными и устаревшими версиями данного программного продукта.

Для чего я написал эту книгу?

Для того чтобы Вы, уважаемый читатель, научились полноценно использо­ вать один из самых популярных программных продуктов — Microsoft Visual FoxPro. Читая эту книгу, Вы совершите экскурсию в удивительный мир программи­ рования, познакомитесь с базами данных и способами управления ими, по­ лучите основные понятия о принципах и методах объектно-ориентиро­ ванного визуального программирования.

А теперь перейдем на "ты"? По-моему, так будет удобнее: я думаю, что оба мы относительно молоды, к чему нам излишняя официальность! Согласен? Ну и прекрасно. В общем, я гарантирую — руководствуясь этой книгой, ты не сможешь:

"взломать" банкомат на соседней улице;

отменить старт "Atlantis";

читать электронную почту Президента;

совершать подобные противоправные действия.

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

• работать с Visual FoxPro;

• создавать таблицы, базы данных, экранные формы, отчеты и т. д.;

10

Введение

• программировать в терминах классов и работать с библиотеками классов;

• создавать свои собственные приложения — их сложность будет зависеть только от поставленной перед тобой задачи и твоей фантазии;

• у тебя будет твердая пятерка (догадываешься, по какому предмету?), что весьма полезно в жизни.

Как, заманчивая перспектива? То-то же! Ты спрашиваешь, что тебе для это­ го нужно?

Отвечаю: твое желание и эта книга. Еще, конечно, компьютер и непосред­ ственно сам "виновник торжества" — Microsoft Visual FoxPro. Где его взять?

А если серьезно, то среда программирования

Visual FoxPro является довольно распространенным программным продук­ том, и уж его-то купить не проблема, поверь мне.

Мы будем считать, что Visual FoxPro уже установлен на твоей машине, ма­ шина находится в "здравом уме и твердой памяти", сам ты бодр, весел и го­ тов ринуться на покорение баз данных. Ура! Но не торопись хвататься за мышь, потому что сейчас мы немного отвлечемся на историю создания это­ го замечательного программного продукта.

Ну, друг мой, я не знаю

Немного истории, или рождение старого лиса

История умалчивает о точной дате рождения FoxPro, но известно, что наш Лис, как и положено всем нормальным лисам, развивался путем эволюции.

В 70-х годах прошлого века для управления базами данных наряду с други­

ми СУБД использовался язык программирования dBase. Вот из него-то и "вышло" в середине 80-х годов детище компании Fox Software, окрещенное как FoxPro. "Никто не может бегать как лиса" — таким был девиз разработ­ чиков, имеющих в виду скорость обработки данных.

От своего прародителя Лис отличался, как бронепоезд от дрезины (как по скорости, так и по "комфорту" работы) — ибо он уже имел нормальный GUI (Graphic User Interface, графический интерфейс пользователя). Но главным все же у "ребенка" был не этот самый GUI — главным была ско­ рость! Основатели компании Fox Software демонстрировали многочисленной аудитории, как FoxPro за считанные секунды находил нужную запись в базе данных, содержавшей несколько сотен тысяч записей! Мир вздрогнул, а присутствовавший при этом зрелище народ ахнул от восторга, тем самым выписав путевку в жизнь нашему приятелю Лису.

В последующие годы развитие FoxPro обеспечивала компания Microsoft,

выкупившая этот программный продукт у Fox Software. Наряду с версией FoxPro 2.5 for DOS вышла в свет FoxPro for Windows, затем уже появилась

Введение

11

первая "визуальная" версия — Visual FoxPro 3.0, после нее Visual FoxPro 5.0, Visual FoxPro 6.0 (именно ее мы с тобой и будем рассматривать) и наконец, не так давно нас порадовали выходом в свет новой версии — Visual FoxPro 8.0 (и даже поговаривают о выпуске девятой версии!).

Так в чем же отличие "визуальных" версий от более ранних? Сейчас я тебе объясню на примере шестой версии Visual FoxPro. Почему именно шестой, а не восьмой или пятой? Да просто потому, что абсолютно непринципиаль­ но, на какой конкретной версии данного продукта проходить обучение. Пусть это будет пятая, седьмая, даже третья версия — это не суть важно. Важно то, что во всех версиях принципы программирования одинаковы, используется один и тот же язык и подавляющее большинство команд, свойств, методов и событий идентичны. Есть, конечно, различия между третьей и восьмой версиями (более того, существенные различия), но еще раз повторюсь — это никак не повлияет на твою последующую работу на ниве программирования. И еще один аргумент — несмотря на выход вось­ мой версии, наиболее популярной все же остается именно шестая.

Что нового в СУБД Visual FoxPro?

Почему, собственно, Visual? Visual — от слова "визуальный", т. е. видимый. А что это означает? То, что тебе не придется самому писать программный код (или почти не придется). Проект твоего приложения будет находиться перед твоими глазами в виде иерархического дерева и ты можешь запросто переключаться между любыми компонентами. В общем, все, что ты приду­ маешь — то и увидишь на мониторе: это так называемая технология WYSIWYG (What You See Is What You Get).

А знаешь, как было раньше, в "не визуальную эру"? В тех версиях не было экранных форм, там использовались "экраны" (screen) и чтобы увидеть что- нибудь на этом экране, приходилось писать программный код — естествен­ но, "вручную" — и только потом на мониторе появлялось нечто похожее на то, что ты хотел (и то далеко не всегда). Но мы-то с тобой работаем на "продвинутом" Visual и подобная ситуация теперь может только присниться.

Наряду со всей этой красотой хочется кратко отметить еще несколько при­ ятных вещей, реализованных в последних версиях Visual FoxPro.

• Усовершенствованный

Automation

Server —

поддерживает

технологию

позволяет использовать возможности приложениях, и наоборот.

СОМ.

Это

Visual

FoxPro в других

• HTML-справка.

При

помощи

дополнительной

сервисной

программы

HTML Help Workshop ты сможешь разработать для своего приложения

справочную систему в формате HTML.

• Большое

количество

построителей

(Builder)

и

мастеров

(Wizard) —

их

использование способно здорово облегчить нелегкую жизнь программиста.

12

Введение

• Галерея компонентов позволит тебе организовывать и группировать раз­ личные объекты (формы, классы и т. д.).

• Поддержка форматов JPEG, GIF — можешь украсить приложение кар­ тинками и анимацией.

• Поддержка дат после 2YK (2000 г.) — правда, нам это уже не грозит.

• Улучшенный графический интерфейс пользователя — тот самый GUI, про который ты уже слышал.

• Технология активных документов — у тебя есть возможность просмот­

реть не HTML-документ в браузере

Internet Explorer.

• Поставляемая совместно с Visual FoxPro программа создания установоч­ ных дисков для распространения создаваемых приложений. Это, как ты понимаешь, лишь некоторые новые "фишки" Visual FoxPro, пе­ речислять подробно все нововведения можно очень долго. Если в процессе создания наших приложений встретится что-нибудь необычное — я обяза­ тельно расскажу о нем подробнее. Прочитав эти страницы, ты узнал с "кем" тебе придется иметь дело, и те­ перь мы переходим к первой части нашей книги.

ЧАСТЬ I Процедурное программирование в Visual FoxPro В части I нашей

ЧАСТЬ

I

Процедурное программирование в Visual FoxPro

В части I нашей книги мы познакомимся с основами процедурного или мо­ дульного программирования в СУБД Visual FoxPro. Мы начнем с самого простого: научимся определять структуру свободной таблицы, познакомим­ ся с диспетчером проекта, экранной формой, отчетом и т. д. Научимся ис­ пользовать различные элементы управления, освоим приемы работы с раз­ личными мастерами (Wizard) и построителями (Builder). Затем мы перейдем к работе с базой данных, научимся создавать запросы и представления дан­ ных и создадим полностью работающее учебное приложение.

УРОК

1

УРОК 1 Начинаем работать! Начинать-то начинаем, но ведь у тебя уже,

Начинаем работать!

Начинать-то начинаем, но ведь у тебя уже, наверняка, возникли некоторые вопросы. Что такое СУБД? А где я возьму базу данных?

Я думаю, что тебе уже приходилось слышать про базы данных, а когда ты услышал про них, то подумал: "Это точно не для меня, ведь этим могут за­ ниматься только крутые программисты-профессионалы или уж совсем злобные хакеры". Что тут сказать? Ты прав, приятель, а чтобы убедить тебя окончательно, приведу несколько мало кому известных фактов из своей собственной биографии:

• когда я был маленьким, вместо погремушек я играл дискетами с файла­ ми баз данных;

• свою первую Нобелевскую премию я получил в 10 лет;

• по ночам (особенно в полнолуние) я люблю взламывать компьютерные сети.

Не веришь? Вот и молодец, потому что на самом деле ситуация несколько иная:

• я такой же "профи", как и ты;

• я понятия не имею о технологии "взлома";

• я белый и пушистый;

• я боюсь всего этого больше, чем ты (если только ты не думаешь, что я каждый день пишу новую книгу о программировании). Так что не отчаивайся, дружище — сейчас я прочту тебе небольшую лек­ цию, и мы все разберем по порядку.

Что такое база данных?

С базами ты сталкиваешься почти каждый день. Вот ты идешь в банк, что­ бы снять энную сумму (для покупки Visual FoxPro). А ты видел, чтобы one-

16

Часть I. Процедурное программирование в Visual FoxPro

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

У оператора стоит компьютер, в который занесена информация о всех кли­ ентах банка, и он за секунду узнает о тебе все, что ему нужно. При этом все данные в его компьютере хранятся в виде базы данных. Это только один пример, а вообще, при наличии воображения, в виде базы данных можно представить все, что угодно. Ну, или почти все. Телефонный справочник — база данных? Еще какая! Паспорт — тоже база данных, правда, очень ма­ ленькая, всего с одной записью. Расписание твоих уроков, календарь, днев­ ник — все это можно представить в виде базы данных. А если мы заглянем

в какую-нибудь бухгалтерию или, например, в налоговую инспекцию (Боже упаси!) — вот где огромное количество различных баз данных! Именно

в таких местах наш Лис чувствует себя, как рыба в воде.

Очевидно, что базы данных занимают отнюдь не последнее место в нашей деловой, да и в повседневной жизни. Так что же это такое?

С точки зрения Visual FoxPro база данных — это файл с расширением dbc, который может содержать такие объекты, как:

• Tables (таблицы);

• views (виды, или представления данных: они подразделяются на локаль­ ные Local Views И удаленные Remote Views);

• Connections (связи);

• stored

Procedures (хранимые процедуры).

Помимо баз данных,

свободные таблицы и запросы.

источником данных для Visual

FoxPro могут служить

Таблицы

Таблица в FoxPro хранится стейший пример (табл. 1.1).

в файле с расширением dbf.

Таблица 1.1. Таблица Pasport

Представим про­

Фамилия

Имя

Отчество

Дата рождения

Шапорев

Дмитрий

Сергеевич

22.08.1972

Ясно видно, что таблица — это двумерный набор строк и столбцов.

В FoxPro столбцы таблиц называются полями (Field — англ. "поле"), а стро ки — записями (Record ~ англ. "запись") — табл. 1.2.

Урок 1. Начинаем работать!

17

Таблица 1.2. Пояснение к определению таблицы

Field 1

Field2

Field n

Record 1

   

Record2

   

Record n

   

Каждое поле имеет свое имя, тип, размер, и в нем содержится информация о данных какой-либ о одно й категории. В таблице pasport.dbf поле имя со­ держит строку СИМВОЛОВ Дмитрий (ТИП Character), а поле Дата рождения — дату 22.08.1972 (тип Date). Попытка записать в поле дата рождения строку символов обречена на неудачу, т. к. данное поле имеет тип Date, а поля это­ го типа могут содержать только дату и ничего кроме этого. Существует еще несколько других типов полей, используемых в таблицах, в дальнейшем мы их подробно рассмотрим.

Таблица в Visual FoxPro может быть представлена как в виде свободной таб­ лицы, так и в виде таблицы базы данных.

Таблица базы данных аналогична свободной таблице, но для нее в базе дан­ ных может храниться дополнительная информация, такая как:

• длинное

• комментарии для полей;

• индексы;

имя;

первичные

• полей;

• правила контроля при изменении или добавлении данных;

• триггеры;

• виды (представления данных).

заголовки

Все это называется словарем данных таблицы базы данных. Я уже говорил о том, что и просто свободная таблица, и таблица базы дан­ ных хранится в файлах с расширением dbf (Data Base File), а вот сама база данных — в файле с расширением dbc (Data Base Container). Подобное раз­ деление началось с выходом версии Visual FoxPro 3.0, в предыдущих верси­ ях все таблицы назывались базами данных и имели расширение dbf.

Базы данных могут иметь различные размеры, я имею в виду количество записей — от простейшей, состоящей из одной таблицы с одной записью до довольно "крутых" конструкций с десятками, а то и сотнями связанных таб­ лиц, каждая из которых может содержать, допустим, до миллиона записей! Как ты считаешь, сколько тебе понадобится времени, чтобы найти нужные

18

Часть I. Процедурное программирование в Visual FoxPro

данные, просматривая, скажем, 8 424 659 записей? Я думаю, до пенсии точ­ но хватит

поиск, редактирование данных) и были

программы, которые называются СУБД или Системы Управления

созданы

Именно на этот случай

(быстрый

Базами Данных.

СУБД

Если тебе где-нибудь встретится аббревиатура СУРБД, то знай, что это то же самое — только на нормальный язык переводится как Система Управле­ ния Реляционными Базами Данных. Слово "реляционные" означает, что данные в таблицах каким-то образом связаны между собой. Visual FoxPro также можно определить как СУРБД.

В настоящее время существует огромное количество различных систем управления данными. Наиболее распространены такие, как Oracle, SQL Server, Microsoft Access, Clipper и др. Все они. как и все в этом мире, имеют свои преимущества и свои недостатки. Наш друг Лис также не идеален, но он является достойным конкурентом в данной категории профаммного обеспечения, т. к. изначально был задуман именно как средство управления базами данных и ничто другое.

На этом наша короткая лекция заканчивается, и если ты еще не заснул, то наш хитрый Лис давно уже смотрит сны — пора его будить, чем мы и зай­ мемся.

УРОК 2

УРОК 2 Запуск Visual FoxPro Ты, наверное, уже не раз запускал на своей

Запуск Visual FoxPro

Ты, наверное, уже не раз запускал на своей машине различные програм­ мы — Word, Excel, Internet Explorer, еше какие-нибудь, — поэтому для тебя не секрет, что способов запустить Windows-приложение — "вагон и малень­ кая тележка". Visual FoxPro в этом отношении ничем не отличается от дру­ гих программ, и также имеется несколько способов его активизации. Рас­ смотрим некоторые из них.

Запуск с использованием кнопки Пуск (Start).

Когда ты устанавливал Visual FoxPro на свой компьютер, инсталлятор создал новую программную группу Windows, которая называется Microsoft Visual FoxPro. Нажми кнопку Пуск (Start), расположенную на рабочем столе твоей машины, в появившемся меню выбери пункт Про­ граммы (Programs). Раскроется еще одно меню, в котором тебе нужно выбрать пункт Microsoft Visual FoxPro, при этом появится еше одна "менюшка" — вот за ней-то и спрятался наш рыжий друг. (Одно "но" — если ты используешь не шестую, а. скажем, восьмую версию, то допол­ нительное меню не появится). Если что-то не понятно, посмотри рис. 2.1.

• Запуск c использованием

командной строки.

Нажми опять же кнопку Пуск, выбери пункт Выполнить. В появившем­ ся окне нажми кнопку Обзор. Найди каталог, в котором находится Visual FoxPro и укажи файл vfp6.exe (он имеет пиктограмму с изображе­ нием забавной рыжей мордочки), нажми кнопку Открыть, а затем в ок­ не Запуск программы щелкни по кнопке ОК (рис. 2.2).

Н а

заметк у

Название исполняемого файла зависит от используемой версии Visual FoxPro Например, в шестой версии он называется vfp6.exe, а в восьмой — соответст­ венно vfp8.exe.

20

Часть

I.

Процедурное

программирование в

Visual FoxPro

программирование в Visual FoxPro Рис. 2.1. Запуск с использованием

Рис. 2.1. Запуск с использованием кнопки Пуск

с использованием кнопки Пуск Рис. 2.2. Запуск с использованием

Рис. 2.2. Запуск с использованием командной строки

Запуск с использованием

Проводника Windows.

Нажимаем кнопку Пуск, выбираем пункт Программы, затем Проводник. В открывшемся окне находим каталог с Visual FoxPro, ставим указатель мыши на файл Vfp6.exe, теперь просто делаем двойной шелчок левой кнопкой мыши (Double Click) и, как говорится, дело в шляпе (рис. 2.3).

А можно и без двойного щелчка — устанавливаем

нажимаем правую кнопку. В появившемся контекстном меню выбираем

мышь на Vfp6.exe и

Урок 2. Запуск Visual FoxPro

21

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

По-моему, это самый удобный способ, особенно если каждый день ра­ ботаешь с Visual FoxPro. Все очень просто: находим файл Vfp6.exe, ука­ зываем на него мышью и нажимаем правую кнопку. Появляется меню, в котором выбираем пункты Отправить | Ярлык на рабочий стол. Все. На рабочем столе появится "Ярлык для Vfp6.0". Теперь не нужно нажи­ мать разные кнопки, запускать проводники и т. д. — для запуска мы просто шелкаем по ярлыку. Дешево и сердито. (Ярлык по желанию можно переименовать — щелкаем правой кнопкой мыши и выбираем соответствующий пункт.)

выбираем соответствующий пункт.) Рис. 2.3. Запуск с использованием

Рис. 2.3. Запуск с использованием программы Проводник

Можно, конечно, привести еще пару-другую способов открытия программ

Windows, но цель данной книги не в этом — в конце концов, запуск нужно­

го приложения дело сугубо личное, кому как удобнее

получится после запуска. А получится вот какая штука (рис. 2.4).

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

крывается

Если ты запустишь

Нам важно, что

небольшое окно команд (Command Window).

22

Часть

I.

Процедурное

программирование

в

Visual FoxPro

программирование в Visual FoxPro \\ HUM Рис. 2.4. Главное окно Visual FoxPro

\\

HUM

Рис. 2.4. Главное окно Visual FoxPro

Visual FoxPro сразу после его установки на свой компьютер, то после запус­ ка появится экран-заставка (рис. 2.5), содержащий пять опций:

to

ponents — открыть новую галерею компонентов для объединения компо­ нентов Visual FoxPro;

• Open

the

new

Component

Gallery

organize

your

Visual

FoxPro

com­

Discover programming solutions by exploring sample applications — посмот­ реть программные решения из примеров приложений;

• Create a new application — создать новое приложение;

• Open an existing project — открыть существующий проект;

Close this screen — закрыть этот экран.

В нижней части экрана-заставки расположен флажок Don't display this Welcome screen again (He показывать этот экран при следующих запусках). Большинство из программистов именно его и устанавливают. Мы поступим таким же образом (щелкнув на нем мышью), и при следующем запуске сра­ зу окажемся в главном окне Visual FoxPro, минуя экран-заставку.

Урок 2.

Запуск

Visual FoxPro

23

Урок 2. Запуск Visual FoxPro 2 3 Рис. 2.5. Экран-заставка Visual FoxPro

Рис. 2.5. Экран-заставка Visual FoxPro

УРОК

3

УРОК 3 Главное окно Visual FoxPro Этот объект можно разбить на шесть

Главное окно Visual FoxPro

Этот объект можно разбить на шесть основных частей:

• строка заголовка (Caption);

• строка главного меню (System menu);

• панель инструментов (Toolbar);

• рабочая область или рабочий стол (Desktop);

• командное окно (Command window);

• строка состояния (Status bar).

Я понимаю твое нетерпение — все это пока кажется довольно скучным, но согласись, что нельзя выезжать на новом автомобиле, не узнав назначение тех или иных элементов управления, не так ли? Все отдают себе отчет,

Поэтому стоит уделить

к чему могут привести подобные эксперименты

этому уроку немного своего драгоценного времени — мы кратко рассмот­

рим каждую часть главного окна.

Заголовок

Заголовок, как известно, для того и существует, чтобы на нем было что- нибудь написано. А там и написано: Microsoft Visual FoxPro. Но, в отличие от обычных заголовков, заголовки окон Windows имеют еще и некоторые дополнительные функции. Например, щелкни мышью по значку пикто­ граммы, расположенному слева от надписи заголовка. Откроется системное меню, позволяющее тебе манипулировать главным окном Visual FoxPro. Приведем пункты системного меню в табл. 3.1. Так, что там у нас еще? Справа расположены три кнопки. Первая, с чертой внизу — Свернуть — сворачивает главное окно до размера пиктограммы и помешает его на Па-

Урок 3. Главное окно Visual FoxPro

25

нель задач Windows. При этом Visual FoxPro не прекращает своей работы. Вторая кнопка — Развернуть — разворачивает главное окно. И наконец, третья кнопка Закрыть — закрывает главное окно, тем самым прекращая работу Visual FoxPro.

Закрашенная в синий цвет часть заголовка также имеет свои функции:

О

кнопку,

можно щелкнуть на ней мышью и, удерживая нажатой левую перетащить главное окно в любое место экрана;

О выполнив

двойной

щелчок

мышью

в

этой

области,

можно

развернуть

главное окно или восстановить его предыдущие размеры.

Ha

3aметку

Синий цвет, установленный по умолчанию, можно запросто изменить — за это отвечают элементы управления из Панели управления Windows (Панель управления | Экран).

Таблица 3.1. Команды системного меню

Команда

Описание

Restore (Восстановить)

Восстанавливает

предыдущий

размер окна

после

того,

как ты его свернул или развернул

 

Move (Переместить)

Передает фокус главному окну Visual FoxPro (активизи­ рует его) и позволяет тебе двигать его по всему экрану, используя клавиатуру

Size (Размер)

Активизирует главное окно и позволяет менять размеры его границ, используя клавиатуру (клавиши управления курсором)

Minimize (Свернуть)

Сворачивает главное окно до размеров пиктограммы

 

Maximize (Развернуть)

Разворачивает главное окно "во всю ширину". Размеры максимальные

Close (Закрыть)

Закрывает Visual FoxPro

 

Главное (системное) меню Visual FoxPro

Вот уж действительно, меню как в ресторане — чего только нет! Будет очень хорошо, если ты в этот момент начнешь просматривать пункты системного меню Visual FoxPro на мониторе — наглядный пример очень полезен, по­ верь мне. Бери мышь — и вперед!

Меню File (Файл). При щелчке мышью открывается меню, которое содер­ жит набор команд, связанных с доступом к файлам. С помощью этих ко-

26

Часть

I.

Процедурное программирование в

Visual FoxPro

манд можно создавать, открывать, сохранять, печатать и закрывать файлы различных типов. Список команд представлен в табл. 3.2.

Таблица 3.2. Команды меню File

Команда

Описание

New (Создать новый)

Позволяет создавать файлы различных типов

 

Open (Открыть)

Открывает диалоговое окно Open, в котором можно указать имя и тип файла, а затем открыть указанный файл

Close (Закрыть)

Закрывает активное окно

 

Save (Сохранить)

Сохраняет файл на диске. Если файл только что создан, то Лис предложит ввести имя этого файла

Save as (Сохранить как)

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

Save as HTML (Сохранить как HTML)

Позволяет сохранить файл

в формате HTML

 

Revert (Отменить)

Позволяет отменить все изменения, выполненные в текущем сеансе редактирования и вернуть файл к его "первозданному" виду

Import (Импорт)

Импортирует файл из другого приложения, напри­ мер из ранних версий FoxPro

Export (Экспорт)

То же самое, что предыдущая команда, только "в обратную сторону" — из Visual FoxPro в другое при­ ложение

Page Setup (Параметры страницы)

Позволяет изменить параметры принтера и страницы

макета

Page Preview (Предварительный просмотр)

Отображает отчеты на экране такими, какими они будут после вывода на печать. Просмотр, в общем

Print (Печать)

Печатает содержимое обмена

активного

окна

или

буфера

Send (Отправить)

Можно отправить сообщение E-Mail. Учителю ин­ форматики или, например, автору этой книги

Exit (Выход)

Выход. Коротко и ясно. Закрывает главное окно и

прекращает

работу Visual

FoxPro.

Как говорится —

аут!

Меню Edit (Редактирование). С помощью команд этого меню осуществля­ ется редактирование файлов (табл. 3.3).

Урок 3. Главное окно Visual FoxPro

27

Таблица 3.3. Команды меню Edit

Команда

Описание

Undo (Отменить)

Отменяет последнее действие. Щелкнул ты, допустим, мышью не туда, куда надо, и что-то там изменилось. Катастрофа?! Нет, конечно. Смело нажимай Undo — опять все в порядке! Удобная штука

Redo (Повторить)

Прямо противоположна предыдущей команде. "Отмена отмены". А по-русски — снова выполняет отмененное действие

Cut (Вырезать)

Удаляет выделенный текст или объект и помещает его в буфер обмена (Clipboard)

Сору (Копировать)

Создает копию выделенного текста или объекта и также помещает ее в буфер обмена

Paste (Вставить)

Вставляет в указанную тобой позицию содержимое бу­ фера обмена

Paste Special (Специальная вставка)

Почти то же, что и Paste, только "круче" — вставляет в указанную позицию не содержимое буфера обмена, а объекты из других приложений

Clear (Очистить)

Удаляет выделенный текст без копирования его в буфер обмена

Select All (Выделить все)

Выделяет все объекты в текущем окне. Используется для одновременного перемещения или форматирова­ ния объектов. Очень удобно применять при создании больших экранных форм и отчетов, да и вообще вещь хорошая

Find (Найти)

Используется для поиска строк в файле

Find Again (Найти еще)

То же самое, что и Find, только поиск ведется не с на­ чала документа, а с указанной позиции

Replace (Заменить)

Используется для замены текстовых строк

Go to Line (Перейти на строку)

Применяется при отладке программ и позволяет перей­ ти на строку с указанным номером

Insert Object

Действует почти как команда Paste Special, но при этом позволяет сразу открыть другое приложение, в котором можно создать этот самый объект

(Вставить объект)

Object (Объект)

Позволяет отредактировать объект OLE

Links (Связи)

Редактирование связанных объектов OLE

Properties (Свойства)

Настройка редактора и его свойств

Меню View (Вид) — "хитрая штучка". Допустим, когда мы просматриваем таблицу, меню View содержит команды, связанные с просмотром таблицы.

28

Часть I. Процедурное программирование в Visual FoxPro

Если же в данный момент не открыта ни одна таблица, форма или отчет, то в этом меню содержится всего одна опция Toolbars (Инструменты или Па­ нели инструментов). При выборе этой опции открывается диалоговое окно Toolbars (Панели инструментов), в котором перечислены все панели инст­ рументов Visual FoxPro. Если мы все же просматриваем таблицу либо редактируем экранную форму или отчет — в этом случае можно пользоваться командами меню View из табл. 3.4.

Таблица 3.4. Команды меню View

Команда

Описание

Edit (Редактирование)

Включает режим Edi t для просмотра и редак­ тирования записей. В этом режиме поля таблиц отображаются вертикально

Browse (Просмотр)

Включает режим Browse для просмотра и ре­ дактирования записей. В этом режиме поля таблиц отображаются горизонтально. Строки представляют записи

Append Mode (Добавление), (Расширенный режим)

Добавляет пустую запись в конец таблицы, при этом указатель записи устанавливается на ее первое поле

Design (Конструкторы)

Отображает окно Конструктора форм (Form Designer), или окно Конструктора отчетов (Report Designer), или окно Конструктора эти­ кеток (Label Designer) — в зависимости от того, что тебе нужно

Tab Order (Порядок табуляции)

Определяет порядок обхода объектов в экран­ ных формах при использовании клавиши <ТаЬ>

Preview (Предварительный просмотр)

Отображает отчеты на экране такими, какими они будут после печати

Data Environment

Определяет таблицы и отношения, данные из которых будут использованы в экранных фор­ мах и отчетах (этикетках)

(Среда данных)

Properties (Свойства)

Открывает диалоговое окно Properties (Свой­ ства), в котором отражены все свойства экран­ ных форм и элементов управления

Code (Код, программа)

Открывает окна программ для редактирования методов объектов

Form Controls Toolbar (Панель элементов экранной формы)

Открывает панель инструментов для разработ­ ки экранной формы во время работы в Конст­ рукторе форм

Урок 3. Главное окно Visual FoxPro

29

Таблица 3.4 (окончание)

Команда

Описание

Report Control Toolbar (Панель инструментов отчета)

Открывает панель инструментов для разработ­ ки отчета во время работы в Конструкторе отче­ тов

Layout Toolbar (Панель инструментов для макетирования)

Используя эту панель инструментов, можно выравнивать элементы управления в формах и отчетах

Color Palette Toollbar (Панель палитры цветов)

Панель палитры цветов позволяет выбирать цвет для элементов управления

Report Preview Toolbars (Панель предварительного просмотра отчета)

На этой панеле расположены кнопки, которые помогут тебе напечатать отчет, просмотреть его страницы или выйти из режима просмотра

Database Designer (Конструктор базы данных)

Открывает окно Database Designer (Конструк­ тор базы данных), в котором можно управлять таблицами, видами и отношениями между таб­ лицами

Grid lines (Линии сетки)

Включает

и

выключает

режим

отображения

линий сетки

 

Show Position (Показать позицию)

При выборе этой опции в строке состояния ото­ бражаются позиция, высота и ширина объекта

General Options (Общие параметры)

Добавляет код в меню во время работы с Кон­ структором меню (Menu Designer)

Menu Options (Опции меню)

Добавляет

программный

код

для

выбранной

опции меню

 

Toolbars (Инструменты)

Открывает диалоговое окно Toolbars (Инстру­ менты), в котором отображены все панели ин­ струментов Visual FoxPro

Теперь у нас на очереди команды меню Format (Формат). Они применяются для изменения характеристик шрифта, отступов и интервалов. Заметим, что при использовании различных конструкторов Visual FoxPro не все команды доступны — это зависит от конкретного случая. Мы же рассмотрим их все сразу (табл. 3.5).

Таблица 3.5. Команды меню Format

Команда

Описание

Font (Шрифт)

Используется для выбора шрифта и его параметров (размер, цвет и т. д.)

30

Часть I. Процедурное программирование в Visual FoxPro

Таблица 3.5 (продолжение)

Команда

Описание

Enlarge Font (Увеличить шрифт)

Увеличивает шрифт в текущем окне

Reduce Font (Уменьшить шрифт)

Уменьшает шрифт в текущем окне

Single Space (Одинарный интервал)

Устанавливает в текущем окне одинарный интервал для текста

11/2 Space (Полуторный интервал)

Устанавливает в текущем окне полуторный интервал для текста

Double Space (Двойной интервал)

Устанавливает в текущем окне двойной интервал для текста

Indent (Отступ)

Устанавливает отступ в текущем окне для выделенных строк или для текущей строки

Unindent (Отменить отступ)

Отменяет отступ в текущем окне для выде­ ленных строк или для текущей строки

Comment (Комментарий)

Выделенная

строка

становится

коммента­

рием

Align (Выравнивание)

Команды выравнивания объектов

 

Size (Размер)

Команды, влияющие на размер объекта

Horizontal Spacing (Горизонтальный интервал)

Команды настройки горизонтального ин­ тервала между выделенными объектами

Vertical Spacing (Вертикальный интервал)

Команды настройки вертикального интер­ вала между выделенными объектами

Bring to Front (Вынести вперед)

Выделенный объект располагается впереди всех остальных объектов формы или отчета

Send to Back (Отправить назад)

Выделенный объект располагается позади всех остальных объектов формы или отчета

Group (Группировка)

Группирует выделенные объекты и позво­ ляет в дальнейшем обращаться с ними как с единым объектом

Ungroup (Разбивка группы, разгруппировка)

Разбивает группы на отдельные элементы

Snap to Grid (Привязка к линиям сетки)

При "переносе" объекта мышью и "сбросе" (отпускании кнопки) левая верхняя точка объекта соединяется с ближайшей точкой пересечения линий сетки

Set Grid Scale (Масштаб сетки)

Настройка расстояния между горизонталь- ными и вертикальными линиями сетки

Text Alignment (Выравнивание текста)

Выравнивает текст в выделенном объекте

Урок 3. Главное окно Visual FoxPro

31

Таблица 3.5 (окончание)

Команда

Описание

Fill (Заполнение, заливка)

Определяет

орнамент

и

цвет

заполнения

для фигур

Реп (Перо)

Определяет стиль и размер пера для рисо­ вания линий и фигур

Mode (Режим)

Устанавливает режим прозрачности для заднего плана объекта

В меню Tools (Инструменты) представлен довольно широкий выбор разных полезных вещей: мастера, отладчики, макросы и прочие "приятности" (табл. 3.6).

Таблица 3.6. Команды меню Tools

Команда

Описание

Wizards (Мастера)

Список мастеров Visual FoxPro

Spelling (Орфография)

В школе у тебя орфографию проверяли? Вот и здесь проверят. Проверяется правописание текстовых и Мето- полей

Macros (Макрос)

При помощи этой команды можно создать свои макросы

Class Browser

Можно просматривать содержимое любого класса Visual FoxPro

(Просмотр класса)

Component Gallery (Галерея компонентов)

Эта команда открывает соответствующее окно для рабо­ ты с Галереей компонентов Visual FoxPro

Coverage Profiler

Позволяет просмотреть информацию о выполненной про­ грамме

Beauty (Украсить)

Старина Лис тот еще пижон — при помощи этой команды он переформатирует файл программы, добавляя отступы и заменяя строчные буквы прописными. Потом попробу­ ем — забавно!

Run Active Document (Активный документ)

Позволяет выбрать и запустить активный документ

Debbuger (Отладчик)

Не знаю, как и перевести

Bugs — "жучки". В среде про­

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

OPtions (Опции)

Доступ к параметрам конфигурации Visual FoxPro

32

Часть I. Процедурное программирование в Visual FoxPro

Пятый пункт линейки системного меню Visual FoxPro — Program (Про­ граммы). Здесь находится всего шесть команд, связанных с запуском, оста­ новкой и компиляцией программ (табл. 3.7).

Таблица 3.7. Команды меню Program

Команда

Описание

Do (Выполнить)

Запускает программу из диалогового окна

Cancel (Отменить)

Отменяет выполнение текущей программы

Resume (Продолжить)

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

Suspend (Приостановить)

Приостанавливает выполнение текущей программы

Compile (Компилировать)

Компилирует исходный файл в объектный код

Run (Выполнить)

Запускает текущую программу

Расположением окон на экране заведует предпоследний пункт главного ме­ ню — Window (Окно) (табл. 3.8).

Таблица 3.8. Команды меню Window

Команда

Описание

Arrange All

Показывает на экране все открытые окна таким об­ разом, что они не перекрывают друг друга

(Расположить все)

Hide (Скрыть)

"Прячет" активное окно, но не удаляет его из памяти

Show All (Показать все)

Отображает все определенные окна

Clear (Очистить)

Стирает текст из активного окна или из главного окна Visual FoxPro

Cycle (Цикл)

Делает активным следующее окно

Command Window

Открывает окно для ввода команд

(Командное окно)

Data Session (Сеанс данных)

Открывает соответствующее окно, в котором можно проконтролировать, какие таблицы в каких рабочих областях открыты. (А областей-то 32 767!)

<Список>

Девять ранее определенных пользователем (т. е. тобой) окон. Если окон больше, появляется пункт More Windows (Еще окна). Открыть любое из них можно, щелкнув мышью

Урок 3. Главное окно Visual FoxPro

33

Заключительная опция системного меню — Help (Помощь).

Вот представь: пишешь ты программу, пишешь и вдруг — ПРОБЛЕМА! И спросить не у кого! И меня рядом нет! Что делать? В англоязычных стра­ нах в таких случаях принято кричать: "Help me! Save me! I'm dying!". А мы поступаем иначе: щелкаем мышью на соответствующем пункте и изучаем меню Help (Помощь) — табл. 3.9.

Таблица 3.9. Команды меню Help

Команда

Описание

Microsoft Visual Fox Pro Help Topic (Темы справочной системы)

Открывает окно справочной системы

Contents (Содержание)

Вкладка Содержание

 

Index (Указатель)

Указатель

Search (Поиск)

Поиск

Techical Support (Техническая поддержка)

Отображает

информацию

о

технической

поддержке

Microsoft on the Web (Страничка корпорации Microsoft в Интернете)

Открывает меню со ссылками на Web-стра­ нички корпорации Microsoft

About Microsoft Visual Fox Pro (Информация о программе)

В этом окне содержится информация о раз­ работчиках, номер версии программы и т. д.

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

А как выполнить команду меню?

Да запросто! Как и в других приложениях Windows, в Visual FoxPro команды меню можно выполнять, используя как мышь, так и клавиатуру.

Использование

мыши —

устанавливаем указатель на нужный

пункт ли­

нейки меню и нажимаем левую кнопку мыши (если ты левша — нажи­ май правую, у тебя мышь другая). В раскрывшемся списке команд меню выбираем необходимую и опять жмем левую кнопку.

• Использование

клавиатуры —

сначала

нужно

активизировать

линейку

меню, нажав клавишу <F10> или <Alt>. Затем при помощи клавиш управления курсором устанавливаем курсор на нужный пункт и нажима­ ем клавишу <Enter>. Аналогичные манипуляции проводим и с раскрыв­ шимся списком команд меню.

2 Зак.

1002

34

Часть I. Процедурное программирование в Visual FoxPro

• Использование "горячих" клавиш ("hot key"). Ты уже заметил, что справа от большинства команд меню написаны непонятные закорючки типа Ctrl+O? Вот это и есть эти самые "горячие" клавиши или "клавиши бы­ строго доступа". При комбинации (одновременном нажатии) клавиш <Ctrl> и указанной буквы выполнится соответствующая команда. В дан­ ном примере откроется диалоговое окно Open. Использование этих соче­ таний клавиш действительно очень удобно, а время, потраченное тобой на их запоминание, с лихвой компенсируется при разработке приложе­ ния. Да, еще совет — не пытайся нажимать их одновременно, все равно не получится — просто нажми <Ctrl> и, не отпуская ее, надави нужную клавишу. Успехов!

Как отменить выполнение команды меню?

Сделать это очень просто:

• при использовании мыши просто щелкнуть в любое свободное место эк­ рана;

• при использовании клавиатуры отмена происходит по нажатию клавиши <Esc>. Для отмены активизации линейки главного меню необходимо по­ вторно нажать клавишу <F10> или <Alt>.

Панель инструментов

Как я уже говорил, в Visual FoxPro имеется несколько панелей инструмен­ тов, каждая из которых предназначена для выполнения какой-нибудь кон­ кретной задачи — в зависимости от того, что именно мы делаем в данный момент. По желанию ты можешь ВСЕ панели инструментов разместить на рабочем столе, но при этом будет неудобно работать, т. к. экранная площадь значи­ тельно сократится. В процессе построения наших приложений мы подробно рассмотрим весь этот инструментарий, а пока познакомимся с главной сис­ темной панелью инструментов Visual FoxPro (рис. 3.1) Данная панель инст­ рументов еще называется Standard (Стандартная) и практически всегда при­ сутствует на экране.

всегда при­ сутствует на экране. Рис. 3.1. Главная панель

Рис. 3.1. Главная панель инструментов

На главной системной панели инструментов расположены двадцать кнопок и один comboBox (привыкай к терминологии, comboBox — это элемент управ-

Урок 3. Главное окно Visual FoxPro

35

ления, представляющий собой раскрывающийся список). При установке ука­ зателя мыши на любую кнопку отображается окно с подсказкой (TooiTips), в котором приводится название кнопки. А для того, чтобы узнать, что озна­ чает сие название и что происходит при нажатии этих кнопок, тебе необхо­ димо просмотреть табл. 3.10.

Таблица 3.10. Команды панели инструментов

Название кнопки (команды)

Действие

New (Создать новый)

Позволяет создавать файлы различных типов. Тип файла указывается в раскры­ вающемся окне New

Open (Открыть)

Открывает диалоговое окно Open, в кото­ ром можно указать имя и тип файла, а за­ тем открыть указанный файл

Save (Сохранить)

Сохраняет файл на диске. Если файл толь­ ко что создан, то Лис предложит ввести имя этого файла

Print One Copy (Печать одной копии)

Печатает одну копию активного файла, содержимое окна Command или буфера обмена

Print Preview (Предварительный просмотр)

Отображает отчеты на экране такими, ка­ кими они будут после вывода на печать

Spelling (Орфография)

Запускает

механизм

проверки

орфогра­

фии

Cut (Вырезать)

Удаляет выделенный текст или объект и помещает его в буфер обмена (Clipboard)

Сору (Копировать)

Создает копию выделенного текста или объекта и также помещает ее в буфер об­ мена

Paste (Вставить)

Копирует в указанную тобой позицию со­ держимое буфера обмена

Undo (Отменить)

Отменяет последнее действие

 

Redo (Повторить)

Снова выполняет отмененное действие

Run (Выполнить)

Дает команду на выполнение текущего файла. Что выполняется? Да все, что угод­ но — программа, форма или отчет

Modify Form

Открывает окно Form Designer (Конструк­ тор форм) в котором можно модифициро­ вать экранную форму

(Изменить форму)

Раскрывающийся список Databases (Базы данных)

В нем отображается активная в данный момент база данных

36

Часть I. Процедурное программирование в Visual FoxPro

Таблица 3.10 (окончание)

Название кнопки (команды)

Действие

Command Window (Командное окно)

Управляет отображением на экране окна для ввода команд

Data Session Window (Окно сеанса данных)

Управляет отображением на экране окна Data Session (Сеанс данных)

Form (Форма)

Запускает Form Wizard (Мастер экранных форм)

Report (Отчет)

Запускает Report Wizard (Мастер отчетов)

Auto Form Wizard (Автоматический построитель экранной формы)

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

Auto Report Wizard (Автоматический построитель отчета)

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

Help (Помощь)

Открывает доступ к разделам справочной системы

Панели инструментов также можно перемещать по экрану. Для этого нужно щелкнуть мышью на свободное от кнопок место и, удерживая нажатой ле­ вую кнопку мыши, переместить панель. Размеры панели инструментов тоже можно изменить, подведя указатель мыши к границам панели инструмен­ тов.

Рабочий стол

Рабочий стол — это такой белый фон, который ты видишь на своем мони­ торе после запуска Visual FoxPro. Дело в том, что наш Лис не может вот так просто взять и выдать что-нибудь на рабочий стол Windows. Но при вводе соответствующих команд это "что-нибудь" (конечно, я имею в виду сообще­ ние или результат вычислений) появляется на рабочем столе Visual FoxPro. Как? Скоро увидим!

Командное окно

Командное окно используется для ввода команд на языке программирова­ ния Visual FoxPro. Его "графическое" поведение полностью аналогично дру­ гим окнам Windows, т. е. его положение и размеры на экране можно менять способами, применяемыми и для других окон. Как это сделать — описано ранее.

Урок 3. Главное окно Visual FoxPro

37

Теперь поговорим о вводе команд. Вообще, используя практически любую версию Visual FoxPro, можно при разработке приложения ни разу не обра­ титься к этому окну и, соответственно, никакие команды в нем не писать. Но т. к. мы с тобой учимся, мы введем нашу первую команду, а если по большому счету — напишем программный код на языке программирования Visual FoxPro. (Музыка, туш!)

Во многих учебниках по различным языкам программирования в качестве первой программы используется следующий пример — пользователю пред­ лагается поприветствовать мировое сообщество, выдав на экран сообщение "Hello,World!" He станем изменять традициям: в командном окне набери следующее — см. рис. 3.2 — и нажми клавишу <Enter>.

3.2 — и нажми клавишу <Enter>. Рис. З.2. Ввод команд Ну и как,

Рис. З.2. Ввод команд

Ну и как, впечатляет? Согласен, не очень. Зато ты понял, как работает ко­ мандное окно — набираешь команду, жмешь <Enter> — и результат не за­ ставит себя ждать.

Но это еще не все. Командное окно имеет замечательную особенность, ко­ торой не было в предыдущих версиях FoxPro — теперь в нем можно выпол­ нить многострочный программный код. Набирая следующий пример (лис­ тинг 3.1), не жми клавишу <Enter>, а для перехода на следующую строку используй клавиши управления курсором.

38

Часть I.

Процедурное программирование в Visual FoxPro

Листинг 3.1. Пример многострочного программного кода

cmessage = "Hello, World !" "

cname = "My name is

@10,15 SAY cmessage FONT "arial",16 012,15 SAY cname FONT "arial",16

Теперь выдели мышью все эти строки и нажми клавишу <Enter>. Другой вариант — щелкни правой кнопкой мыши на окно ввода команд и в появившемся меню выбери пункт Execute Selection (Выполнить выделен­ ное) — рис. 3.3.

выделен­ ное) — рис. 3.3. Рис. 3.3. Выполнение

Рис. 3.3. Выполнение многострочного кода

Строка состояния

Строка состояния расположена в нижней части главного окна Visual FoxPro. Этот элемент можно условно разделить на две части: область сообщений и индикаторы.

Урок 3. Главное окно Visual FoxPro

39

Область сообщений используется различными конструкторами для отобра­

Если же открыта какая-

нибудь таблица, то в области сообщений будут показаны ее параметры.

жения

позиции

расположенных в

них объектах.

• Имя таблицы.

• Имя базы данных (в скобках).

• Номер записи.

• Общее количество записей в таблице, а

также способ доступа к файлу:

Exclusive — однопользовательский, или монопольный доступ;

Record unlocked — запись разблокирована;

Record locked — запись заблокирована.

Также в этой области могут отображаться различные системные сообщения.

В правой части строки состояния расположены четыре индикатора или ин­

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

показано, была ли нажата клавиша <Insert> — в этом случае в

данном

индикаторном поле отображаются символы OVR и редактор Visual

В первом

FoxPro работает в режиме вставки.

Символы NUM во втором индикаторном поле отображаются, если включе­ на клавиша <NumLock>.

Третий индикатор показывает состояние клавиши <CapsLock> — если она включена, в данном поле появляется сообщение CAPS.

И наконец, имеется четвертый индикатор, в котором отображается текущее время. Чтобы его включить, можно ввести в командном окне команду SET CLOCK STATUS или выбрать в системном меню пункты Tools | Options (Инст­ рументы | Опции) и в диалоговом окне Options (Опции) выбрать вкладку View (Вид).

Все! Более или менее разобрались с интерфейсом и теперь переходим к сле­ дующему уроку, где узнаем еще очень много полезного.

УРОК

4

УРОК 4 Знакомство с диспетчером проекта При разработке

Знакомство с диспетчером проекта

При разработке практически любого приложения используется проект, ко­ торый помогает организовать все файлы на основе их типа, а также объеди­ няет все компоненты приложения для последующей их компиляции и соз­ дания либо исполняемого файла с расширением ехе, либо файла приложе­ ния с расширением арр. Можно еще сделать и файл динамической библиотеки — dll. Сам файл проекта имеет расширения pjx и pjt.

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

• в

пункте

файл);

системного

меню

File

(Файл)

выбрать

команду

New

(Новый'

• нажать кнопку New (Новый) на стандартной панели инструментов.

В любом из этих случаев откроется диалоговое окно New (Новый), в кото

ром нужно указать, что именно мы хотим создать (рис. 4.1). Опция Proje (Проект) уже установлена по умолчанию (что нам и требуется).

Нажмем кнопку New file (Новый файл). Появится диалоговое окно Сгеа (Создать) (рис. 4.2). В поле Enter project (Введите имя проекта) нужно вве сти имя нового проекта, также необходимо указать папку, в которой он бу дет сохранен.

По умолчанию в поле Enter project (Введите имя проекта) уже стоит им проекта — projl. Его, естественно, можно заменить на другое.

Итак, вводим имя своего приложения и щелкаем кнопку Сохранит (Save) — файл создан, открывается окно Project Manager (Диспетчер проек та) (рис. 4.3).

В верхней части этого окна расположено шесть вкладок. В табл. 4.1 поясня

ется их назначение.

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

Урок

4.

Знакомство

с

диспетчером

проекта

41

с диспетчером проекта 41 Рис. 4.1. Диалоговое окно New Рис.

Рис. 4.1. Диалоговое окно New

41 Рис. 4.1. Диалоговое окно New Рис. 4.2. Диалоговое окно Create

Рис. 4.2. Диалоговое окно Create

Таблица 4.1. Вкладки окна Project Manager

Наименование

Для чего используется

All (Все)

Показываются все файлы, включенные в проект

Data (Данные)

Базы данных, таблицы, виды, запросы и хранимые про­ цедуры

Documents (Документы)

Экранные формы, отчеты, этикетки

Classes (Классы)

Классы и библиотеки классов

Code (Программы)

Программы, библиотеки

Other (Другие)

Текстовые файлы, меню и прочие типы файлов

элемента показан знак "+". Не очень понятно? А ты шелкни, к примеру, на "плюсик" рядом с элементом Data (Данные). Теперь ясно?

Справа

кнопка со стрелкой,

при нажатии на которую окно проекта сворачивается (рис. 4.4).

При щелчке на заголовке какой-нибудь вкладки откроется только вкладка, изображенная на рис. 4.5.

место

Более

вверху

в

окне диспетчера

проекта расположена

того,

вкладку можно

"ухватить"

мышью

и

переместить

в любое

42 -

Часть I. Процедурное программирование в Visual FoxPro

программирование в Visual FoxPro Рис. 4.З. Окно Project Manager Рис. 4.4.

Рис. 4.З. Окно Project Manager

в Visual FoxPro Рис. 4.З. Окно Project Manager Рис. 4.4. Свернутое окно Project Manager

Рис. 4.4. Свернутое окно Project Manager

Рис. 4.4. Свернутое окно Project Manager Рис. 4.5. Диалоговое окно Project Manager

Рис. 4.5. Диалоговое окно Project Manager с открытой вкладкой Documents

А обратил ли ты внимание, что при работе с диспетчером проекта в систему ном меню Visual FoxPro появился еще один пункт — Project (Проект)?

В этом

пункте меню содержатся

команды,

работающие с файлами

проек­

та — табл. 4.2.

: ]

Урок 4. Знакомство с диспетчером проекта

43

с диспетчером проекта 4 3 Рис. 4.6. Перемещение вкладок по

Рис. 4.6. Перемещение вкладок по экрану

 

Таблица 4.2.

Команды меню

Project

Команда

Описание

New File (Новый файл)

 

Создает новый файл, который добавляется в проект автоматически

Add File (Добавить файл)

 

Добавляет в проект ранее созданный файл

Modify File (Изменить файл)

 

Модифицирует файл, включенный в проект

Browse File (Просмотреть

файл)

Открывает файл

в режиме

Browse (таблич­

 

ный просмотр)

^Rename File (Переименовать)

Позволяет переименовать указанный файл

Preview (Просмотр)

 

Предварительный просмотр файла

Remove

(Удалить)

Удаляет указанный файл из проекта

Exclude (Исключить)

 

Исключает указанный файл из проекта

Set Main (Главная программа)

Устанавливает указанный файл в качестве главной программы проекта

44

Часть

I.

Процедурное программирование в

Visual FoxPro

Таблица 4.2 (окончание)

Команда

Описание

Edit Description (Редактировать описание)

Открывает окно для редактирования описа­ ния файла

Project Info (Информация о проекте)

Информация о проекте

Errors (Ошибки)

Показываются ошибки, строении проекта

возникшие при по­

Build (Построить)

Перестраивает весь проект

Refresh (Обновить)

При выборе данной команды обновляется вся информация в окне диспетчера проекта

Cleah Up Project (Упаковать)

Упаковывает проект, удаляя из него ненуж­ ные файлы

Также в окне диспетчера проекта имеется шесть кнопок (рис. 4.7). Дейст­ вия, происходящие после их нажатия, практически идентичны соответст­ вующим пунктам меню Project (Проект), поэтому мы не будем подробно останавливаться на их описании.

останавливаться на их описании. Рис. 4.7. Кнопки диалогового окна

Рис. 4.7. Кнопки диалогового окна Project Manager

УРОК

5

УРОК 5 Первое приложение Наконец-то! Дождались! Понимаю, понимаю

Первое приложение

Наконец-то! Дождались! Понимаю, понимаю твою радость. Действительно,

наверное, довольно скучно разглядывать всякие таблицы, читать описания

Без этого тебе бы пришлось всю жизнь всем рас­

сказывать, какой ты "крутой" программист. Чтобы такого не случилось, мы приступаем к практическим занятиям.

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

команд, но что поделать

Что бы такое придумать? Возьмем что-либо из школьной программы, на­ пример, сделаем приложение, которое будет решать квадратные уравнения. Этот пример хорош тем, что позволяет познакомиться с математическими функциями Visual FoxPro.

новую папку, где будут храниться наши примеры, и

назовем ее examples.

Для

начала создадим

Теперь запускаем Visual FoxPro и начинаем конструировать новый проект, используя кнопку New (Новый) на стандартной панели инструментов и ука­ зав опцию Project в диалоговом окне New (Новый). В окне New нажимаем кнопку New File (Новый файл) и смотрим на монитор (рис. 5.1).

В окне Create (Создать) в поле Enter project (Введите имя проекта) указыва­ ем имя нашего проекта, а используя раскрывающийся список Папка — имя нашей папки (examples) и нажимаем кнопку Сохранить.

Открывается окно диспетчера проекта (рис. 5.2). Для того чтобы создать свободную таблицу, нам необходимо перейти на вкладку Data (Данные), выбрать пункт Free Tables (Свободные таблицы) и нажать кнопку New, после чего на экране появится окно New Table (Новая таблица) (рис. 5.3).

46

Часть I,

Процедурное программирование в

Visual FoxPro

программирование в Visual FoxPro Рис, 5.1. Диалоговое окно Create Рис.

Рис, 5.1. Диалоговое окно Create

FoxPro Рис, 5.1. Диалоговое окно Create Рис. 5.2. Диалоговое окно

Рис. 5.2. Диалоговое окно диспетчера проекта Equation

окно диспетчера проекта Equation Рис. 5.З. Диалоговое окно New Table

Рис. 5.З. Диалоговое окно New Table

Урок

5.

Первое

приложение

47

Что такое Table Wizard (Мастер таблиц), мы рассмотрим далее, а сейчас на­ жмем кнопку New Table (Новая таблица).

Как видишь, открывшееся диалоговое окно Create (рис. 5.4) почти ничем не отличается от того окна, которое мы видели в самом начале, при создании проекта.

начале, при создании проекта. Рис. 5.4. Диалоговое окно Create По

Рис. 5.4. Диалоговое окно Create

По умолчанию в поле Enter table уже стоит название таблицы tabiei . При необходимости его можно изменить на любое другое. Вводим имя, напри­ мер, mytab и нажимаем кнопку Сохранить.

На экране появляется окно Table Designer (Конструктор таблиц). Там рас­ положено три вкладки:

Fields (Поля) — используется для определения полей таблицы;

П

Indexes (Индексы) — для определения индексов;

П

Table (Таблица) — отображает информацию о таблице.

По умолчанию открыта вкладка Fields (Поле), и теперь самое время погово­ рить об именах полей и их типах. Имя поля в свободной таблице не может состоять из более чем 10 сим­ волов. В имени поля можно применять буквы, цифры и знак подчеркива­ ния. Использование знаков препинания, специальных символов и пробелов в имени поля не рекомендуется. Также имя поля не должно начинаться с цифры или знака подчеркивания. Пример допустимых имен: Abed,

48

Часть I.

Процедурное программирование в

Visual FoxPro

программирование в Visual FoxPro Рис. 5.5. Диалоговое окно Table Designer В

Рис. 5.5. Диалоговое окно Table Designer

В Visual FoxPro ровно "чертова дюжина типов" полей — 13.

На

заметку

В старших версиях Visual FoxPro, например в восьмой версии, есть еще один

тип поля — Integer (Autolnc).

Рассмотрим их подробнее.

Поля типа character являются одними из наиболее распространенных типов полей в таблицах. Они могут содержать от 1 до 254 символов — буквы, чис­ ла, пробелы, знаки препинания. Поля данного типа имеют фиксированную длину. Например, если у тебя есть поле размером в 10 символов, то оно и будет занимать ровно 10 символов, независимо от того, что в нем записано. Что это значит? А то, что если ты изменишь длину символьного поля в таб­ лице с данными, например уменьшишь ее, то все данные в полях character будут усечены до указанного размера.

В полях типа character можно хранить не только символьные выражения,

но и числа. Например, почтовый индекс или номер телефона. Для чего это делать? Во-первых, если число 000458 поместить в поле типа Numeric, то Лис уберет ведущие нули и получится 458. Во-вторых, чтобы не возникло "соблазна" произвести с ними какие-нибудь вычисления. Ну ты сам поду­ май, что хорошего получится, если мы по ошибке начнем складывать между собой номера телефонов и делить их на почтовые индексы?

В общем, здесь рекомендация такая: если числа будут участвовать в матема­

тических вычислениях — смело помещаем их в поле Numeric. Если нет —

выбирае м ТИП Character .

Тип currency — поля данного типа используются для записи значений, вы­ ражающих денежные суммы. Максимальное допустимое значение находится

Урок 5.

Первое

приложение

49

где-то в районе 922 триллионов. Не плохая цифра, правда? Дядюшка Скрудж из диснеевского мультика просто бы умер от зависти, узнай он про нашего дядюшку Лиса. Ну а если ты тоже любишь считать денежки, вот тебе точный диапазон допустимых значений поля типа currency:

от -922 337 203 685 477,5807 до 922 337 203 685 477,5807

Тип Date — для работы с датами. Даты могут принимать значения от 1 января 01 года (от Рождества Христова) до 31 декабря 9999 года (это уж точно конец света

Тип DateTime — почти то же, что и Date, только еще позволяет хранить по­ мимо дат время в диапазоне от 12,00,00 am до 11,59,59 рт .

Тип Logical — информация, хранимая в этих полях, может принимать только два значения — .Т. (True) (Истина) или .F. (False) (Ложь). Исполь­ зуется для указания наличия или отсутствия каких-нибудь свойств, призна­ ков. Например, выражение типа "кошка/собака" может принимать только одно значение, потому что собака не может быть одновременно и собакой и кошкой.

Тип Memo — для символьных данных большого объема. А что такое "боль­ шой объем"? Принцип следующий: если информация не помещается в поле

Character , Т.

е. больш е

25 4 СИМВОЛОВ —

ИСПОЛЬЗуеМ ПОЛе Memo.

Тип character (binary) используется в тех случаях, когда нам не требуется для отображения данных учитывать кодовую страницу.

Тип integer используется для хранения целых чисел. Возможный диапазон

значений от -2

Тип General — поля данного типа предназначены для хранения изображе­ ний и другой информации в двоичном виде. Можно сказать, что это спе­ циализированное поле Memo.

147 483

547 до 2

147 483 547.

ТИПЫ

Numeri c

И

Floa t

ИСПОЛЬЗУЮТСЯ

ДЛЯ

работ ы

С

ЧИСЛОВЫМИ

ДЭННЫМИ

И

отображают числа в диапазоне от -0,9999999999*10 19 до 0,9999999999*Ю 20 .

Тип Double применяется для хранения данных с высокой точностью:

от 4,94065658541247*10324 до 1,79769313486232*10308.

Перед тем как начать конструировать нашу таблицу, необходимо опреде­

в полях таблицы, и, соответст­

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

лить, данные

какого типа будут храниться

ах2

= xl=(-b+sqrt(d)/2* a x2=(-b-sqrt(d)/2* a

d

+

Ьх+с=0

b2-

4ас

50

Часть I. Процедурное программирование в Visual FoxPro

здесь sqr t (d) не что иное, как просто квадратный корень из d. Я специаль­ но записал это выражение именно так, чтобы сразу познакомить тебя с функцией FoxPro, которая возвращает значение квадратного корня.

Итак, для решения нашей задачи нам понадобятся поля типа Numeric, в ко­ торых мы будем хранить значения а, ъ, с, d, xi и х2, одно символьное поле типа character и возьмем, пожалуй, еще поле типа Date.

Начинаем определять структуру таблицы mytab.

Для этого на вкладке Fields (Поля) окна Table Designer (Конструктор таб­ лиц) имеется несколько "столбцов" (рис. 5.6).

несколько "столбцов" (рис. 5.6). Рис. 5.6. Определение структуры

Рис. 5.6. Определение структуры таблицы mytab

Первый столбец, Name (Имя), используется для ввода имени поля, причем имя не должно повторяться, иначе Лис "обидится" и выдаст соответствую­ щее сообщение о недопустимости ввода двух полей с одинаковым именем.

Вводим имя нашего первого поля, пусть это будет first_a. Введя хотя бы один символ, мы уже видим, что столбец Туре (Тип) принял вид раскры­ вающегося списка, из которого можно выбирать соответствующие значения, щелкая мышью на нужной строчке. По умолчанию стоит тип character. Так как мы будем иметь дело с числами, необходимо установить тип Numeric. При нажатии клавиши <ТаЬ> фокус получает следующий столбец — Width (Ширина), в котором указывается размер поля. Значения можно вводить с клавиатуры, а можно использовать счетчик, т. к. данный элемент представ­ ляет собой объект spinner (Поле ввода со счетчиком). Просто нажми мышью на нужную кнопку счетчика справа от поля ввода и все. Счетчик сначала будет работать довольно медленно, но затем раскрутится почти до космических скоростей. Главное здесь — вовремя остановиться.

Урок

5.

Первое

приложение

51

Следующий столбец вкладки Fields — Decimal (Десятичные знаки). Данная опшя доступна только для полей типа Numeric и позволяет задать количест­ во знаков в числе после запятой. Надо учитывать, что количество знаков не добавляется к общему размеру поля, а выделяется из него, т. к. общий раз­ мер определяется параметром Width. Столбец Index используется для того, чтобы определить порядок отображе­ ния записей — по возрастанию (Ascending) или по убыванию (Descending). Если индекс (о них разговор пойдет далее) не определен, то Visual FoxPro при помощи данной опции автоматически его создаст. И последний столбец этой вкладки NULL устанавливает, допустимы ли для данного поля значения NULL. После определения имен и типов полей наша табличка примет вил, пока­ занный на рис. 5.7.

вил, пока­ занный на рис. 5.7. Рис. 5.7. Мы закончили определение

Рис. 5.7. Мы закончили определение структуры таблицы

Маленькие кнопки, расположенные слева от имен полей, служат для изме­ нения порядка отображения полей при просмотре таблицы. Можешь смело менять их местами, это никак не повлияет на результат вычислений. После всех этих несложных манипуляций необходимо сохранить плоды на­ шей титанической работы. Для этого нажмем кнопку ОК. Да, я же не рас­ сказал о назначении кнопок в окне конструктора таблиц! Действия этих элементов управления нехитрые:

• ОК — сохраняет структуру таблицы;

• Cansel — отмена проведенных изменений;

• Insert — вставка нового поля;

• Delete — удаление указанного поля.

52

Часть

I.

Процедурное программирование

в

Visual FoxPro

Итак, мы только нажали кнопку ОК, а хитрющий Лис уже интересуется, будем ли мы вводить записи в нашу таблицу прямо сейчас (рис. 5.8).

таблицу прямо сейчас (рис. 5.8). Рис. 5.8. Запрос на ввод записей

Рис. 5.8. Запрос на ввод записей

Совершенно необязательно сразу после создания таблицы приступать к вво­ ду значений. Но мы все же ответим Yes (Да) и нажмем соответствующую кнопку в диалоговом окне запроса. После этого наша таблица откроется в режиме добавления записей (Append Mode), и мы введем наши первые дан­ ные (рис. 5.9).

наши первые дан­ ные (рис. 5.9). Рис. 5.9. Таблица в режиме ввода

Рис. 5.9. Таблица в режиме ввода данных

Ввод данных осуществляется с клавиатуры, а для перехода к следующему полю можно использовать клавиши управления курсором. Вообще же пере­ ход происходит автоматически: заносим данные, нажимаем <Enter> и указа­ тель устанавливается на следующее поле. В данном режиме поля показаны "столбиком", т. е. вертикально. Для разделения записей используется тонкая пунктирная линия. После заполнения первой записи указатель автоматиче­ ски устанавливается на следующую, и мы можем продолжить ввод данных.

Урок 5. Первое приложение

53

В нашем случае нет необходимости заполнять все поля и поэтому мы, введя единственную запись (см. рис. 5.9), закрываем это окно. Для закрытия ис­ пользуем стандартные методы Windows: щелкаем на кнопку с крестиком в правом верхнем углу окна или используем соответствующую команду меню, щелкнув на пиктограмме в левом верхнем углу. Также для закрытия этого окна можно воспользоваться комбинацией клавиш <Ctrl>+<W>.

Давай теперь посмотрим на диалоговое окно диспетчера проекта (Project Manager) (рис. 5.10). Видно, что наша таблица автоматически добавлена в проект, ее имя находится в разделе Free Tables вкладки Data. Слева от име­ ни расположены два значка: перечеркнутый кружок и знак +. Если мы на­ жмем на знак +, то увидим список полей нашей таблицы.

список полей нашей таблицы. РИС.5.10.Таблицадобавленавпроект

РИС.5.10.Таблицадобавленавпроект

Перечеркнутый кружок означает, что при компиляции проекта данный файл компилироваться не будет. Внизу, под надписью Description (Описа­ ние) указан полный путь (Path) к нашему файлу. Просмотреть и отредактировать данные в таблице можно, нажав кнопку Browse (Просмотр) (рис. 5.11). С данными мы более или менее разобрались, таблица готова и пришло вре­ мя заняться непосредственно интерфейсом нашего приложения, для чего мы переходим к следующему уроку, где начнем создавать экранные формы.

54

Часть

I.

Процедурное программирование в

Visual FoxPro

программирование в Visual FoxPro Рис. 5.11. Таблица в режиме

Рис. 5.11. Таблица в режиме просмотра

УРОК

6

Экранная форма. Первое знакомство

форма. Первое знакомство Любое серьезное приложение

Любое серьезное приложение просто "обязано" иметь как минимум одну экранную форму, потому что именно экранная форма является тем основ­ ным средством, которое позволяет пользователю взаимодействовать с дан­ ными.

Каждая экранная форма может состоять из неограниченного числа объек­ тов. Любой объект экранной формы имеет свои, присущие данному классу объектов свойства, которые мы можем редактировать. Также мы можем ука­ зать объекту действия, которые он будет выполнять при наступлении опре­ деленных событий.

В общем, весь процесс создания экранной формы сводится к следующему:

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

Создать новую экранную форму можно различными способами: используя, в частности, Form Wizard или Form Designer.

"Кто" такие эти загадочные Wizard, уже дважды нам встретившиеся, узнаем

дальше,

Form Designer

а

пока будем "делать"

экранную форму,

используя

(Конструктор форм).

Открыть окно конструктора форм можно различными способами.

• Выполнить команду New (Новый) из меню File (Файл) и в открывшемся

диалоговом окне New (Новый)

нажать кнопку New File (Новый

файл),

предварительно установив опцию Form (Форма).

• Нажать

кнопку

New

(Новый)

на

стандартной

панели

инструментов.

Дальнейшие действия, как в предыдущем способе. А спрашивается, к чему нам лишние движения мышью? В окне диспетчера проекта есть кнопка New (Новый), которая также позволяет создать новый файл, который к тому же будет автоматически добавлен в проект. Нужно только указать, какой именно файл мы хотим создать.

56

Часть

I.

Процедурное

программирование

в