Каждое окно должно иметь некоторую центральную тему, которой подчиняется его композиция. Пользователь должен понимать, для чего предназначено данное окно и что в нем наиболее важно. При этом недопустимо перегружать окно большим числом органов управления, ввода и отображения информации. В окне должно отображаться главное, а все детали и дополнительную информацию можно отнести на вспомогательные окна. Для этого полезно вводить в окно кнопки с надписью Больше..., многоточие в которой показывает, что при нажатии этой кнопки откроется вспомогательное окно с дополнительной информацией.
Помогают также разгрузить окно многостраничные компоненты с закладками. Они дают возможность пользователю легко переключаться между разными по тематике страницами, на каждой из которых имеется необходимый минимум информации.
Еще один принцип, которого надо придерживаться при проектировании окон — стилистическое единство всех окон в приложении. Недопустимо, чтобы сходные по функциям органы управления в разных окнах назывались по-разному или размещались в разных местах окон. Все это мешает работе с приложением, отвлекает пользователя, заставляет его думать не о сущности работы, а о том, как приспособиться к тому или иному окну.
При проектировании приложения важно правильно определить последовательность табуляции оконных компонентов. Под этим понимается последовательность, в которой переключается фокус с компонента на компонент, когда пользователь нажимает клавишу табуляции Tab. Это важно, поскольку в ряде случаев пользователю удобнее работать не с мышью, а с клавиатурой. Пусть, например, вводя данные о каком-то сотруднике, пользователь должен в отдельных окнах редактирования указать фамилию, имя и отчество. Конечно, набрав фамилию, ему удобнее нажать клавишу Tab и набирать имя, а потом опять, нажав Tab, набирать отчество, чем каждый раз отрываться от клавиатуры, хватать мышь и переключаться в новое окно редактирования.
Приложение должно предельно облегчать работу пользователя, снабжая его системой подсказок, помогающих сориентироваться в приложении. Эта система включает в себя:
· Ярлычки, которые всплывают, когда пользователь задержит курсор мыши над каким-то элементом окна приложения. В частности, такими ярлычками обязательно должны снабжаться быстрые кнопки инструментальных панелей, поскольку нанесенные на них пиктограммы часто не настолько выразительны, чтобы пользователь без дополнительной подсказки мог понять их назначение.
· Более развернутые подсказки в панели состояния или в другом отведенном под это месте экрана, которые появляются при перемещении курсора мыши в ту или иную область окна приложения.
· Встроенную систему контекстно-зависимой оперативной справки, вызываемую по клавише F1.
· Раздел меню Справка, позволяющий пользователю открыть стандартный файл справки Windows.hlp, содержащий в виде гипертекста развернутую информацию по интересующим пользователя вопросам.
При работе программы могут возникать различного рода ошибки: переполнение, деление на нуль, попытка открыть несуществующий файл и т.п. При возникновении таких исключительных ситуаций программа генерирует так называемое исключение я выполнение дальнейших вычислений в данном блоке прекращается. Исключение — это объект специального вида, характеризующий возникшую в программе исключительную ситуацию. Он может также содержать в виде параметров некоторую уточняющую информацию. Особенностью исключений является то, что это сугубо временные объекты. Как только они обработаны каким-то обработчиком, они разрушаются.
Программист должен принять все мыслимые меры, чтобы ни при каких ошибках пользователя и ни при каких сочетаниях данных приложение не заканчивалось бы аварийно. Но если все-таки аварийное завершение происходит, необходима полная зачистка «мусора» — удаление временных файлов, освобождение памяти, разрыв связей с базами данных и т.д.
Данный программный продукт имеет шесть таблиц БД.
Таблица 2.1 Владельцы - vladelec.dbf
| Наименование поля | Тип | Размер | Назначение |
| * Kod_vlad | Number | 5 | Код владельца |
| Fam | Character | 20 | Фамилия |
| Name | Character | 20 | Имя |
| Oth | Character | 20 | Отчество |
| Adres | Character | 20 | Адрес |
| | Character | 30 | Адрес электронной почты |
| Tel | Number | 20 | Номер телефон |
| Sot | Number | 20 | Номер мобильного телефона |
Таблица 2.2 Менеджеры - sotrud.dbf
| Наименование поля | Тип | Размер | Назначение |
| * Kod_sot | Number | 3 | Код сотрудника |
| Fam | Character | 20 | Фамилия |
| Name | Character | 20 | Имя |
| Oth | Character | 20 | Отчество |
Таблица 2.3 Автомобили - avto.dbf
| Наименование поля | Тип | Размер | Назначение |
| * Kod_avto | Number | 6 | Код автомобиля |
| Kod_vlad | Number | 5 | Код владельца |
| Kod_Marka | Number | 6 | Код марки |
| Model | Character | 20 | Модель автомобиля |
| V | Character | 5 | Объем двигателя |
| Gos_nom | Character | 8 | Государственный номер |
| Cvet | Character | 20 | Цвет |
| Tip_kuz | Character | 20 | Тип кузова |
| Foto_1 | Character | 20 | Фотография 1 |
| Foto_2 | Character | 20 | Фотография 2 |
| Cena | Number | 10 | Цена |
Таблица 2.4 Регистрация - avto_in.dbf
| Наименование поля | Тип | Размер | Назначение |
| * Kod_in | Number | 6 | Регистрационный номер |
| Akt_nom | Number | 6 | Номер акта |
| Kod_avto | Number | 6 | Код автомобиля |
| Kod_vlad | Number | 6 | Код владельца |
| Kod_sot | Number | 6 | Код менеджера |
| Data | Date | Дата регистрации |
Таблица 2.5 Комплектность - komplect.dbf
| Наименование поля | Тип | Размер | Назначение |
| Kod_avto | Number | 6 | Код автомобиля |
| Koleso | Character | 15 | Оформление колес |
| Zapaska | Logical | Наличие запасного колеса | |
| Instrument | Logical | Наличие инструмента | |
| Music | Logical | Наличие магнитолы | |
| Medic | Logical | Наличие аптечки | |
| Elect_pak | Logical | Наличие электропакета | |
| ABS | Logical | Наличие АБС | |
| GUR | Logical | Наличие гидроусилителя рулевого колеса | |
| Kondic | Logical | Наличие кондиционера | |
| Korobka | Character | 15 | Тип КПП |
| Privod | Character | 15 | Вид привода |
| Info | Memo | Дополнительная информация | |
| Defekt | Memo | Описание дефектов |
Таблица 2.6 Продажа - avto_out.dbf
| Наименование поля | Тип | Размер | Назначение |
| * Kod_out | Number | 6 | Код продажи |
| Data | Date | Дата продажи | |
| Marka_out | Number | 6 | Код марки |
| Model_out | Character | 20 | Модель автомобиля |
| V_out | Character | 5 | Объем двигателя |
| Cvet_out | Character | 20 | Цвет |
| Tipkuz_out | Character | 20 | Тип кузова |
| Cena | Number | 10 | Цена |
Таблица 2.7 Марки автомобилей - marka.dbf