Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Параметры функций по умолчанию



Параметры функций по умолчанию пришли в Delphi из С++. Часто при вызове процедур и функций в них надо передать параметры, обычно имеющие одно и то же значение. Это имеет место в частности в научных расчетах. Теперь эта проблема упрощается путем введения параметров по умолчанию. Это означает, что прямо в объявлении функции можно указать, что те или иные параметры должны принимать определенные значения, если они не заданы явно. Нарпример, можно описать функцию

function Test(x: extended; Rz: extended = 6371): extended;

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

Test(100, 6372);

А можно и не указывать:

Test(100);

В первом случае параметр Rz будет иметь значение 6372, а во втором - по умолчанию - 6371.

Параметры по умолчанию должны быть сосредоточены в конце списка параметров. Допускается умалчивать последний, последний и предпоследний, и т.д. параметры В этом состоит отличие от С++ - там можно опускать любые из параметров по умолчанию.

При применении параметров по умолчанию следует соблюдать осторожность. ассмотрим следующий пример:

Procedure Confused(I: integer); overload;
Procedure Confused(I: integer; J: integer = 0); overload;

...

Confused(x);

Компилятор не сможет определить, какую именно реализацию Confused следует вызвать, и выдаст сообщение об ошибке.

Приемы работы в среде разработки

Репозиторий

Репозиторий (Repository) представляет собой хранилище разнородных объектов, объединенных общим предназначением. Основная цель создания репозитория - предоставление разработчику возможности повторного использования уже готовых и отлаженных частей программы. Здесь можно найти готовое стандартное приложение, динамическую библиотеку, форму, модуль, мастера диалогов и приложений, а также различные вспомогательные программы.

Репозиторий в Delphi представляет собой текстовый файл, в котором данны обо всех объектах храняться в специальном формате.

Открыть репозиторий можно при помощи команды New меню File главного окна Delphi.

Рассмотрим некоторые объекты, входящие в репозиторий. Основу любой разработки в Delphi составляет проект, объединяющий самые разные структурные элементы в единое приложение. В него чаще всего входят модули и формы различных видов. Типы приложений представлены исполняемыми программами, динамическими библиотеками и приложениями для запуска служб. Особое место занимают приложения для работы с базами данных (БД), поэтому значительная часть объектов репозитория предназначена для конструирования таких программ. Для обеспечения удаленного доступа к данным предназначены стандартные заготовки для приложений, использующие различные механизмы взаимодействия, в том числе технологии CORBA и Microsoft Transaction Server (MTS).

Состав объектов репозитория можно обновлять, также можно создавать, переименовывать страницы и изменять состав объектов для них. едактирование репозитория осуществляется в диалоговом окне Object Repository которое появляется при выборе команды Repository меню Tools главного окна Delphi, или при выборе команды Properties всплывающего меню репозитория. Добавить новую форму в репозиторий можно командой Add to repository всплывающего меню формы или перетаскиванием формы в панель репозитория.

Проект и группа проектов

Любая работа в Delphi начинается с создания нового проекта. Как правило, из одного проекта получается одно приложение. Таким образом, проект представляет собой фундамент или каркас, на который “крепятся” все нужные детали. Самый маленький проект представляет собой только один файл с расширением DPR, он называется главным файлом проекта. Серьезный большой проект содержит десятки разнообразный форм, файлов и модулей.

В главном файле содержится описание всех модулей и форм, входящих в проект. Кроме того, в секции begin … end может располагаться любой код, который должен выполняться перед началом работы приложения или в процессе его закрытия.

Модулем называется текстовый файл с расширением PAS, в котором содержится некоторый исходный код на языке Object Pascal. С модулем может быть связана форма, представляющая собой отдельно взятое окно программы с расположенными на нем интерфейсными элементами. Служебная информация о формах хранится в файлах с расширением DFM. В общем случае, в состав проекта могут входить модули, не имеющие связанных с ними форм.

В репозитории содержится несколько заготовок для форм (страница Forms), а также некоторые стандартные диалоги, которые с точки зрения пользовательского интерфейса являются модальными формами (страница Dialogs). В проекте Delphi помимо модулей и форм могут присутствовать различные служебные файлы. Среди них важное место занимают ресурсы (расширение RES), которые хранят значки, курсоры, строки сообщений информацию о версии программы и т.д.

Репозиторий предлагает на выбор несколько типов проектов: например проекты с многодокументным (MDI) и однодокументным (SDI) интерфейсом. При необходимости создания динамической библиотеки также можно воспользоваться соответствующей заготовкой из репозитория.

Помимо проекта в Delphi пристствует и более важная структурная единица - группа проектов, которая, как видно из названия, объединяет для совместной разработки несколько проектов. Файл группы проектов имет расширение BPG и представляет собой текстовый файл с системной информацией и описанием проектов, входящих в группу.

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

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

Управление проектом осуществляется кнопками на панели инструментов диспетчера проекта или командами всплывающего меню.

Вызывается диспетчер командой Project Manager меню View главного окна Delphi. Создание новой группы проектов осуществляется также при помощи диспетчера проекта. Возможность объединения групп или включения групп в другие группы отсутствует.

В целом, параметры проекта доступны в диалоговом окне, которое открывается при выборе команды Project Options меню Project главного окна Delphi.

Палитра компонентов

Основная палитра компонентов Delphi имеет двенадцать страниц.

Standard. Большинство компонентов на этой странице являются аналогами экранных элементов самой Windows. Меню, кнопки, полосы прокрутки — здесь есть все. Но компоненты Delphi обладают также некоторыми удобными дополнительными встроенными возможностям.

Additional. Эта страница содержит более развитые компоненты. Например, компонент Outline удобен для отображения информации с иерархической структуройДанная страница также содержит компоненты, главное назначение которых — отображение графической информации. Компонент Image загружает и отображает растровые изображения, а компонент Shape позволяет рисовать графические примитивы - окружности, квадраты и т.д.

System. Страница System содержит неотображаемые системные компоненты: Timer, MediaPlayer, компоненты, реализующие механизм DDE. Страница System также содержит компоненты, обрабатывающие обмен высокого уровня между программами посредством OLE (Object Linking and Embedding).

Win32. Эта страница содержит компоненты, позволяющие созданным с помощью Delphi программам использовать такие нововведения в пользовательском интерфейсе 32-разрядной Windows, как просмотр древовидных структур, просмотр списков, панель состояния, расширенный текстовый редактор и др.

Dialogs. Windows 3.1 ввела в употребление стандартные диалоговые окна для операций над файлами, выбора шрифтов, цветов и т.д. Однако для использования их в обычной программе Windows может потребоваться написать немало вспомогательного кода. Страница Dialogs предоставляет программам Delphi простой доступ к этим стандартным диалоговым окнам.

Data Access и Data Controls. Delphi использует механизм баз данных компании Borland (Borland Database Engine, BDE) для организации доступа к файлам баз данных различных форматов. Компоненты этих двух страниц облегчают программам Delphi использование сервиса баз данных, предоставляемого BDE, например многопользовательского считывания, записи, индексации и выдачи запросов для таблиц dBASE и Paradox.

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

Win 3.1. На этой странице находятся компоненты Delphi 1.0, возможности которых перекрываются аналогичными компонентами Windows 95.

Internet. Эта страница предоставляет компоненты для разработки приложений, позволяющих создавать HTML-файлы непосредственно из файлов баз данных и других типов, взаимодействующих с другими приложениями для Internet. Delphi 4 дает вам возможность создавать приложения для Web-сервера в виде DLL-файлов: (Dynamic Link Library — Динамически компонуемая библиотека), способных содержать невизуальные компоненты. С помощью компонентов страницы Internet довольно просто создавать обработчики событий для обращения к определенному URL (Uniform Resource Locator — Унифицированный локатор ресурса), представлению документов в HTML-формате и пересылки их клиент-программе.

Samples. Эта страница содержит компоненты, которые не встроены в Delphi, но демонстрируют мощь системы компонентов. Для этих компонентов нет встроенной интерактивной справки. Все же они не менее полезны, чем компоненты с других страниц.

ActiveX. Эта страница содержит компоненты ActiveX, разработанные независимыми производителями программного обеспечения: сетка, диаграмма, средство проверки правописания.

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

Midas и Decision Cube. Здесь собраны компоненты для доступа к удаленным серверам и осуществления SQL – запросов.

Размещение компонентов

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

Если вы забыли, на какой странице расположен конкретный компонент, выберите пункт Component List из меню View, и на экране появится список компонентов в алфавитном порядке. Если щелкнуть на компоненте в палитре компонентов, его кнопка окажется нажатой. Если щелкнуть на другом компоненте, первая кнопка вернется в исходное состояние: только один компонент может быть выбран в каждый момент времени. Для того чтобы все кнопки оказались в исходном состоянии, и было восстановлено нормальное использование мыши, следует щелкнуть на кнопке со стрелкой выбора, которая появляется с левой стороны каждой страницы палитры. Для размещения нескольких копий компонента при выборе компонента необходимо нажать и удерживать клавишу Shift. Если дважды щелкнуть на пиктограмме компонента, то компонент автоматически появится в центре активной формы проекта.

При перемещении и изменении размера компоненты выравниваются по точкам координатной сетки формы. Как правило, это хорошо — такая возможность помогает поддерживать порядок в формах. Для отмены этой возможности или изменения плотности точек координатной сетки необходимо выберать пункт Options меню Tools. Первая страница параметров предназначена для настройки пользователем параметров среды. На этой странице имеется группа Form designer, флажки опций Display grid и Snap to grid которой определяют, видна ли координатная сетка и активна ли она. Можно также изменить значения параметров Grid Size X (Шаг по оси X) и Grid Size Y (Шаг по оси Y), что приведет к изменению шага координатной сетки по горизонтали и вертикали, соответственно.

Не каждый компонент виден на форме во время запуска программы. Например, размещение на форме компонента MainMenu приводит к появлению в разрабатываемом приложении меню, но соответствующая пиктограмма во время запуска программы не отображается. Компоненты, представляющие диалоговые окна общего назначения, вообще никак не визуализируются во время работы программы. азмеры невидимого компонента в процессе разработки не изменяются: он всегда отображается в виде пиктограммы.

Инспектор объектов

Инспектор объектов предназначен для установки доступных на этапе проектирования свойств компонентов (то есть свойств, объявленных как published). Окно инспектора состоит из трех основных частей:

· Селектора компонентов

· Страницы свойств (Properties)

· Страницы событий (Events)

Селектор компонентов представляет собой выпадающий комбинированный список и предназначен для выбора компонент для просмотра и редактирования. Обычно, в использовании селектора нет необходимости, так как выделенный компонент появляется в инспекторе объектов автоматически. Селектор компонентов отображает имя компонента и класс, от которого данный компонент происходит. Например, кнопка с именем OkButton будет представлена как «OkButton: TButton».

Страница Properties инспектора объектов отображает все свойства выбранного компонента, доступные на стадии проектирования. Страница разделена на два столбца. Столбец Property слева показывает имя свойства, столбец Value справа - значение этого свойства. Если свойство имеет тип класса, записи, или множества, то слева от его имени отображается знак +. Дважды щелкнув на имени такого свойства, можно получить доступ к отдельным его полям. Того же эффекта можно достичь, выбрав пункт Expand в контекстном меню инспектора объектов. Для закрытия развернувшегося списка полей необходимо повторно дважды щелкнуть на имени свойства, либо использовать пункт Collapse в контекстном меню инспектора объектов. Во многих случаях редактор отображает список возможных значений свойства. Для свойств, представляющих собой объекты (экземпляры классов VCL) существуют две возможности для редактирования. Во-первых, можно, щелкнув на кнопке с многоточием (…) в столбце Value свойства вызвать редактор соответствующего свойства; либо, щелкнув дважды на имени свойства, можно развернуть список его полей, как описано выше. Если на форме выделено несколько компонентов, инспектор объектов покажет их общие свойства. Это дает возможности менять свойства нескольких компонентов одновременно.

Страница Events редактора объектов содержит список событий, которые может обрабатывать данный компонент. Для создания обработчика события необходимо дважды щелкнуть на столбце Value рядом с именем этого события. При этом Delphi создаст метод, со всеми параметрами, необходимыми для обработки события. Активизируется окно редактора кода с курсором, расположенным внутри обработчика события. Остается только ввести код обработчика! Обычно имя обработчика события генерируется автоматически, однако, можно вручную задать требуемое имя в столбце Value напротив имени события. После нажатия клавиши Enter произойдет генерация скелетного кода обработчика события с заданным именем. Можно связать событие с уже имеющимся обработчиком. Для этого используется выпадающий список, появляющийся при нажатии соответствующей кнопки в столбце Value напротив имени события. В список включаются только обработчики событий, совпадающие по типу с данным событием.

Редактор кода

Основные средства упрощения процесса создания исходного кода приложе- ний собраны в едакторе кода (Code Editor), который из окна для отображе- ния и редактирования кода модулей приложения превратился в удобное сред- ство с многочисленными справочными и вспомогательными возможностями.

Шаблоны компонентов

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

Создание шаблона включает следующие шаги:

1. На форме необходимо разместить требуемые компоненты, выровнять их и настроить нужные свойства.

2. Выделить на форме компоненты, которые предполагается включить в шаблон, в группу.

3. Выбрать в меню Components Главного окна среды разработки команду Create Component Template.

4. В появившемся диалоге требуется задать имя нового шаблона и указать страницу Палитры компонентов, на которой шаблон будет доступен. Нажать кнопку ОК.

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

Шаблоны кода

Шаблоны кода предназначены для быстрой вставки в исходные код моду-. лей проекта стандартных (или часто используемых) комбинаций операторов языка Object Pascal. Для вызова шаблона кода используется комбинация клавиш иш

+, после нажатия которой появляется список доступных в настоящее время шаблонов.

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

Опция завершения кода

Опция завершения кода применяется при необходимости использовать в исходном коде проекта свойства и методы стандартных компонентов Delphi. Включение механизма завершения кода происходит после ввода символа точки за названием класса или объекта. едактор кода автоматически разворачивает список всех свойств и методов компонента. После выбора нужного элемента списка и нажатия клавиши свойство или метод дописывается в имени класса или объекта. Так как многие классы обладают. внуши- тельным списком свойств, доступных программисту, то при выборе нужного элемента из списка можно воспользоваться наращиваемым поиском — при вводе после точки первых букв свойства или метода осуществляется автоматическое позиционирование списка на первый похожий элемент.

Опция включается на странице Code Insight в диалоговом окне команды Environment Options меню Tools Главного меню среды разработки при помощи флажка Сне Completion (рис. 2.1).

Опция параметров

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

Опция включается на странице Code Insight в диалоговом окне команды Environment Options меню Tools Главного меню среды разработки при помощи флажка Соде Parameters (рис. 2.1).

Опция заполнения класса

Эта функция автоматически генерирует исходный код для любых составных частей нового класса (свойств и методов), которые уже объявлены в секции interface, а также создает объявление для тех элементов, которые уже описаны в секции implementation.

Чтобы создать описание объявленных свойств и методов, необходимо установить курсор в любое место объявления класса в секции interface и нажать комбинацию клавиш ++.

После этого Delphi, во-первых, создаст для объявленных свойств класса не- обходимые свойства и методы для чтения и записи в секции private. Во- вторых, в секции implementation будет сгенерировано описание необходимых методов.

Например, имеется простейший класс:

type
TSimpleObject = class (TObject)
property Empty: Integer;
function ClearEmpty: Boolean;
end;

Тогда, после нажатия комбинации клавиш ++, исходный код в секции interface будет приведен к следующему виду:

type
TSimpleObject = class (TObject)
property Empty: Integer read FEmpty write SetEmpty;
function ClearEmpty: Boolean;
private
FEmpty: Integer;
procedure SetEmpty(const Value: Integer);
end;

А в секции implementation появятся следующие строки:

function TSimpleObject.ClearEmpty: Boolean;
begin

end;

procedure TSimpleObject.SetEmpty(const Value: Integer);
begin
FEmpty: = Value;
end;


Поделиться:



Последнее изменение этой страницы: 2019-10-03; Просмотров: 186; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.043 с.)
Главная | Случайная страница | Обратная связь