Расширение набора стандартных функций и классов borland delphi


Содержание

Components for Delphi, C++ Builder,
Lazarus & Visual Studio

Библиотека EhLib содержит компоненты и классы для Borland Delphi, CodeGear Delphi & C++ Builder, CodeGear RAD Studio, Embarcadero RAD Studio направлена на расширение возможностей клиентской части программы базы данных, при взаимодействии пользователя с приложением.

TDBGr >

Компонент TDBGridEh обеспечивает полную функциональность TDBGrid и добавляет некоторые новые возможности, такие как:
Позволяет выделять записи, столбцы и прямоугольные области. Копировать/вставлять выделенные области в/из буфера обмена.
Позволяет выводить специальные заголовки столбцов, которые могут объединяться над несколькими/всеми столбцами.
Позволяет выводить нижний колонтитул (footer), для отображения сумм/количеств/др. значений полей.
Позволяет автоматически подгонять размеры столбцов, чтобы ширина всего грида равнялась ширине видимой области окна грида.
Позволяет изменять высоту строк данных и заголовков.
Позволяет автоматически переносить текст и увеличивать высоту заголовке столбца чтобы уместить весь текст заголовка.
Заголовок столбца может вести себя как кнопка и, опционально, иметь маркер сортировки.
Позволяет автоматически менять маркеры сортировки и сортировать данные в наборе данных (DataSet’е).
Позволяет отсекать длинный текст с отображением многоточия.
Позволяет в выпадающем Lookup списке отображать несколько полей.
Позволяет инкрементный поиск в lookup-полях.
Позволяет закреплять для прокрутки несколько первых столбцов сетки (FrozenCols).
Позволяет выводить выпадающий календарь (поддерживается для полей типа TDateField и TDateTimeField).
Позволяет отображать картинки из TImageList зависящие от значения поля.
Позволяет прятать и отслеживать положение вертикальных и горизонтальных полос прокрутки.
Позволяет скрывать столбцы.
Позволяет отображать 3D-рамку для закрепленных разных типов столбцов (строк).
Позволяет отображать memo-поля.
Позволяет иметь многострочный редактор по месту.
Позволяет выводить пропорциональную полосу прокрутки для dataset’ов не поддерживающих IsSequenced режим.
Позволяет автоматическое отображение checkbox’ов для boolean-полей. Позволяет отображать checkbox’ы для других типов полей.
Имеет процедуры для сохранения/восстановления свойств (видимые столбцы, порядок следования столбцов, их ширины, порядок сортировки, высоту столбца) в/из реестра или INI-файла.
Позволяет отображать подсказки (ToolTips) для текста, не помещающегося в ячейку.
Позволяет экспортировать данные в Text, Csv, HTML, RTF, XLS и внутренний форматы.
Позволяет импортировать данные из Text и внутреннего форматов.
Позволяет выводить под заголовком специальную строку для ввода выражения, применяемое для фильтрации данных.
Может сортировать данные в различных dataset’ах.
Может фильтровать данные в различных dataset’ах.
При подключении к DataSet’у типа TMemTable может:
Просматривать все данные, не перемещая активную запись.
Отображать древовидную структуры записей TMemTable’а.
Автоматически формировать списки значений для выпадающих списков в SubTitle фильтре.

TPrintDBGr >

Компонент TPrintDBGridEh содержит свойства и функции для предварительного просмотра и печати компонента TDBGridEh, и обеспечивает следующие возможности:
Может расширять высоту строки по вертикали при печати, чтобы умещать весь текст.
Может масштабировать grid чтобы уместить его по ширине одной страницы.
Может печатать заголовок grid’а.
Может печатать колонтитулы, в которых вы можете размещать макросы для текущей страницы, текущей даты, текущего времени и/или статичный текст.
Печатать выделенную область grid’а.
Печатать Rich-текст перед и после grid’а.

Обзор Borland Delphi

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

Hадо отметить, что к моменту выхода продукта обстановка вокруг компании Borland складывалась не лучшим для нее образом. Поговаривали о возможной перепродаже компании, курс акций компании неудержимо катился вниз. Сейчас, по прошествии полугода, уже можно без всяких сомнений утверждать, что период трудностей позади. Hеверно, конечно, было бы говорить, что только Delphi явился причиной восстановления компании; кроме Delphi, у Borland появились и другие замечательные продукты, так же, как и Delphi, основывающиеся на новых, появившихся недавно у компании Borland, технологиях. Я имею в виду новые BDE 2.0, BC++ 4.5, Paradox for Windows 5.0, dBase for Windows 5.0, BC++ 2.0 for OS/2.

Тем не менее, именно Delphi стал тем продуктом, на примере которого стало ясно, что у Borland есть еще порох в пороховницах, и что один единственный продукт может настолько удачно сочетать несколько передовых технологий.

Delphi. Основные характеристики продукта.

Delphi — это комбинация нескольких важнейших технологий:

  • Высокопроизводительный компилятор в машинный код
  • Объектно-ориентированная модель компонент
  • Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
  • Масштабируемые средства для построения баз данных

Компилятор в машинный код

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).

В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы — после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.

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

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

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Для начала — неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему “с нуля”, просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250, хотя, возможно, я не обо всех знаю. Скептики, возможно, не поверят мне, когда я скажу, что на Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Тем не менее, это так. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

Быстрая разработка работающего приложения из прототипов

Игровая программа Rendzu была собрана моим коллегой из готовых кусков за рабочий день, причем большая часть времени была посвящена прихорашиванию и приукрашиванию. Screen Saver в виде прыгающих часиков был также изготовлен на Delphi за весьма незначительное время. Теперь эти часики украшают почти каждую IBM-совместимую машину в нашем Демо-центре клиент-серверных технологий. Конечно, на разработку серьезной информационно-поисковой системы в архитектуре клиент-сервер может уйти гораздо большее время, чем на разработку программы-игрушки. Тем не менее многие наши коллеги, до Delphi программировавшие на других языках, утверждают, что на Delphi скорость изготовления сложного проекта выше раз в 10.

Cреда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD — rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL — библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток. Постойте, — скажете вы, ведь это уже было. Да, это было в Visual Basic.

Соответствующий стандарт компонент назывался VBX. И этот стандарт так же поддерживается в Delphi. Однако, визуальные компоненты в Delphi обладают большей гибкостью. Вспомним, в чем была проблема в VB. Прикладной программист программировал, вообще говоря, в среде языка бэйсик. А компоненты в стандарте VBX готовили ему его коллеги-профессионалы на С++.

VBX’ы приходили, “как есть”, и ни исправить, ни добавить ничего было нельзя.

А для изготовления VBX надо было осваивать “кухню” языка C++. В Delphi визуальные компоненты пишутся на объектном паскале, на том же паскале, на котором пишется алгоритмическая часть приложения. И визуальные компоненты Delphi получаются открытыми для надстройки и переписывания. Чувствуете разницу?

Масштабируемые средства для построения баз данных

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.

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

Delphi — два варианта поставки

Я уже упомянул о технологиях, которые объединяет Delphi. Теперь можно перейти к описанию собственно продукта. Что лежит внутри коробки, и чем может воспользоваться программист при разработке прикладной системы? Выпущены две версии Delphi: одна — (Delphi Client-Server) адресована для разработчиков приложений в архитектуре “клиент-сервер”, а другая — (Delphi for Windows) предназначена для остальных программистов. Приложения, разработанные при помощи Delphi, можно использовать без выплаты royalty-процентов и без оплаты runtime-лицензий.

Клиент-серверная версия Delphi

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

Клиент-серверная версия включает в себя следующие особенности:

  • SQL Links: специально написанные драйвера для доступа к Oracle, Sybase, Informix, InterBase
  • Локальный сервер InterBase: SQL-сервер для Windows 3.1. СУБД для разработки в корпоративных приложений на компьютере, не подключенном к локальной сети.
  • ReportSmith Client/server Edition: генератор отчетов для SQL-серверов
  • Team Development Support: предоставляет версионный контроль при помощи PVCS компании Intersolve (приобретается отдельно) или при помощи других программных продуктов версионного контроля
  • Visual Query Builder — это средство визуального построения SQL-запросов
  • лицензия на право распространения приложений в архитектуре клиент-сервер, изготовленных при помощи Delphi
  • исходные тексты всех визуальных компонент

Delphi for Windows

Delphi for Windows представляет из себя подмножество Delphi Client-Server и предназначен для разработчиков высокопроизводительных персональных приложений, работающих с локальными СУБД типа dBase и Paradox.Delphi Desktop Edition предлагает такую же среду для быстрой разработки и первоклассный компилятор как и клиент-серверная версия (Client/Server Edition). Эта среда позволяет разработчику быстро изготавливать персональные приложения, работающие с персональными СУБД типа dBase и Paradox. Delphi позволяет также создавать разработчику DLL, которая может быть вызвана из Paradox, dBase, C++ или каких-нибудь других готовых программ.

В Delphi for Windows, как и в Delphi Client-Server, входят

  • компилятор Object Pascal (этот язык является расширением языка Borland Pascal 7.0)
  • генератор отчетов ReportSmith 2.5 (у которого, правда, отсутствует возможность работы с SQL-серверами)
  • среда визуального построителя приложений
  • библиотека визуальных компонент
  • Локальный сервер InterBase

RAD Pack for Delphi

В этом обзоре стоит упомянуть еще один продукт, выпущенный компанией Borland для Delphi. В RAD Pack for Delphi входит набор полезных дополнений, которые помогут разработчику при освоении и использовании Delphi. Это учебник по объектному паскалю, интерактивный отладчик самой последней версии, Borland Visual Solutions Pack (набор VBX для реализации редакторов, электронных таблиц, коммуникационные VBX, VBX с деловой графикой и т.п.), Resource WorkShop для работы с ресурсами Borland Pascal 7.0, а также дельфийский эксперт для преобразования ресурсов BP 7.0 в формы Delphi.

Для кого предназначен Delphi

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений ( RAD — rap >) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени.

Delphi такие ограничения не присущи. Хорошее доказательство тому — это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт — журнал Visual Basic Magazine присудил свою премию Delphi for Windows .

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

Некоторые особенности Delphi

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

Team Development Support — средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi.

Высокопроизводительный компилятор в машинный код — в отличие от большинства Паскаль-компиляторов, транслирующих в p-код, в Delphi программный текст компилируется непосредственно в машинный код, в результате чего Delphi- приложения исполняются в 10-20 раз быстрее (особенно приложения, использующие математические функции). Готовое приложение может быть изготовлено либо в виде исполняемого модуля, либо в виде динамической библиотеки, которую можно использовать в приложениях, написанных на других языках программирования.

Открытая компонентная архитектура

Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затараты на разработку.

Delphi предлагает разработчикам — как в составе команды, так и индивидуальным — открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help’ы, доступные через меню Delphi.

Two-way tools — однозначное соответствие между визуальным проектированием и классическим написанием текста программы Это означает, что разработчик всегда может видеть код, соответствующий тому, что он построил при помощи визуальных инструментов и наоборот.

Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры.

Библиотека визуальных компонент

Эта библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE.

Структурное объектно-ориентированное программирование

Delphi использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Delphi полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями.

Поддержка OLE 2.0, DDE и VBX

Это очень важная особенность для разработчиков в среде Windows, поскольку в уже существующие Windows-приложения программист может интегрировать то, что разработает при помощи Delphi.

Delphi: настраиваемая cреда разработчика

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

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

Понятно, что поскольку в Delphi вы визуальным образом строите свою программу, все эти компоненты имеют свое графическое представление в поле форм для того, чтобы можно было бы ими соответствующим образом оперировать. Но для работающей программы видимыми остаются только визуальные компоненты. Компоненты сгруппированы на страницах палитры по своим функциям. К примеру, компоненты, представляющие Windows “common dialogs” все размещены на странице палитры с названием “Dialo gs”.

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

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

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

Delphi обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим находить и устранять ошибки в коде. Вы можете установить точки останова, проверить и изменить переменные, при помощи пошагового выполнения в точности понять поведение программы. Если же требуются возможности более тонкой отладки, Вы можете использовать отдельно доступный Turbo Debugger, проверив ассемблерные инструкции и регистры процессора.

Этот инструмент представляет из себя отдельное окно, где вы можете в период проектирования программы устанавливать значения свойств и событий объектов (Properties & Events).

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

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

Можно создавать меню, сохранить созданные в виде шаблонов и затем использовать в их в любом приложении.

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

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

Включает в себя:

  • Эксперт форм, работающих с базами данных
  • Эксперт стилей и шаблонов приложений
  • Эксперт шаблонов форм

В состав RAD Pack входит эксперт для преобразования ресурсов, изготовленных в Borland Pascal 7.0, в формы Delphi. Уже появились эксперты, облегчающие построение DLL и даже написание собственных экспертов

Интерактивная обучающая система

Позволяет более полно освоить Delphi. Она являются не просто системой подсказок, а показывает возможности Delphi на самой среде разработчика.

Компоненты доступа к базам данных и визуализации данных

Библиотека объектов содержит набор визуальных компонент, значительно упрощающих разработку приложений для СУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень — Borl and Database Engine.

Предусмотрены специальные наборы компонент, отвечающих за доступ к данным, и компонент, отображающих данные. Компоненты доступа к данным позволяют осуществлять соединения с БД, производить выборку, копирование данных, и т.п.

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

Разработка приложений БД

Delphi позволяет использовать библиотеку визуальных компонент для быстрого создания надежных приложений, которые легко расширяются до приложений с архитектурой клиент-сервер. Другими словами, Вы можете создать приложение, работающее с локальным сервером InterBase, а затем использовать созданное приложение, соединяясь с удаленным SQL-сервером через SQL-Links.

Библиотека объектных Визуальных Компонент

Компоненты, используемые при разработке в Delphi (и также собственно самим Delphi), встроены в среду разработки приложений и представляют из себя набор типов объектов, используемых в качестве фундамента при строительстве приложения.

Этот костяк называется Visual Component Library (VCL). В VCL есть такие стандартные элементы управления, как строки редактирования, статические элементы управления, строки редактирования со списками, списки объектов.

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

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

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

Здесь следует отметить, что обычных ограничений, присущих средам визуальной разработки, в Delphi нет. Сам Delphi написан при помощи Delphi, что говорит об отсутствии таких ограничений.

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

Язык программирования Delphi базируется на Borland Object Pascal.

Кроме того, Delphi поддерживает такие низкоуровневые особенности, как подклассы элементов управления Windows, перекрытие цикла обработки сообщений Windows, использование встроенного ассемблера.

Формы, модули и метод разработки “Two-Way Tools”

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

Информация о формах хранится в двух типах файлов — .dfm и .pas , причем первый тип файла — двоичный — хранит образ формы и ее свойства, второй тип описывает функционирование обработчиков событий и поведение компонент. Оба файла автоматически синхронизируются Delphi, так что если добавить новую форму в ваш проект, связанный с ним файл .pas автоматически будет создан, и его имя будет добавлено в проект.

Такая синхронизация и делает Delphi two-way-инструментом, обеспечивая полное соответствие между кодом и визуальным представлением. Как только вы добавите новый объект или код, Delphi устанавливает т.н. “кодовую синхронизацию” между визуальными элементами и соответствующими им кодовыми представлениями.

Например, предположим, вы добавили описание поведения формы (соотв. обработчик событий), чтобы показывать окно сообщения по нажатию кнопки. Такое описание появляется, если дважды щелкнуть мышкой непосредственно на оъект Button в форме или дважды щелкнуть мышью на строчку OnClick на странице Events в Инспекторе объектов. В любом случае Delphi создаст процедуру или заголовок метода, куда вы можете добавить код.

procedure TForm1.Button1Click(Sender: TObject);

Cоздавая этот код, Delphi автоматически формирует декларацию объекта TForm1, которая содержит процедуру ButtonClick, представляющую из себя собственно обработчик события.

TForm1 = class (TForm)

procedure Button1Click(Sender: TObject);

Конечно вы запросто можете решить после получения этого кода, что автоматически созданные имена Вас не устраивают, и заменить их. Например, Button1 на Warning. Это можно сделать изменив свойство Name для Button1 при помощи Инспектора объектов. Как только вы нажмете Enter, Delphi автоматически произведет соответствующую синхронизацию в коде. Так как объект TForm1 существует в коде, вы свободно можете добавлять любые другие поля, процедуры, функции или object definition. К примеру, вы можете дописать в коде свою собственную процедуру, обрабатывающую событие, а не делать это визуальным методом.

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

procedure WarningClick(Sender: TObject);

procedure NewHandler(Sender: TObject);

Здесь мы имеем дело уже с второй стороной синхронизации. Визуальная среда в данном случае распознает, что новая процедура добавлена к объекту и соответствующие имена появляются в Инспекторе объектов.

Добавление новых объектов

Delphi — это прежде всего среда разработки, базирующаяся на использовании компонент. Поэтому вы можете добавлять совершенно новые компоненты в палитру компонент. Вы можете создавать компоненты внутри Delphi, или вводить компоненты, созданные как управляющие элементы VBX или OLE 2.0, или же вы можете использовать компоненты, написанные на С или С++ в виде dll.

Последовательность введения новой компоненты состоит из трех шагов:

  • наследование из уже существующего типа компоненты
  • определение новых полей, свойств и методов
  • регистрация компоненты

Это все делается через меню Install Components


Добавление управляющих элементов VBX

Delphi генерирует объектное расширение VBX, которое инсталлируется в качестве компонент.

Например, если вы инсталлируете SaxComm VBX из Visual Solutions Pack компании Borland в Delphi, автоматически генерится тип объекта TComm, который наследуется из стандартного TVBXControl. Когда вы инсталлируете компоненты, Delphi будет компилировать и подлинковывать их к библиотеке компонент.

Делегирование: события программируются проще

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

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

К примеру, когда вы добавляете кнопку в форму и прикрепляете код, обрабатывающий нажатие, вы фактически используете делегирование кода для ассоциирования кода с событием OnClick. Такая ассоциация происходит для вас автоматически. Если проверить страницу Events в Инспекторе объектов для вашего приложения, можно увидеть ассоциированные с событиями процедуры.

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

Обработка исключительных ситуаций

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

В Delphi это устроено в стиле С++. Исключения представлены в виде объектов, содержащих специфическую информацию о соответствующей ошибке (тип и место- нахождение ошибки). Разработчик может оставить обработку ошибки, существо-вавшую по умолчанию, или написать свой собственный обработчик.

Обработка исключений реализована в виде exception-handling blocks (также еще называется protected blocks ), которые устанавливаются ключевыми словами try и end . Существуют два типа таких блоков: try. except и try. finally .

Общая конструкция выглядит примерно так:

on exception1 do statement1;

on exception2 do statement2;

Конструкция try. finally предназначена для того, чтобы разработчик мог быть полностью уверен в том, что, что бы ни случилось, перед обработкой исключительной ситуации всегда будет выполнен некоторый код (например, освобождение ресурсов).

Немного о составе продукта

Документация.

  • Руководство пользователя
  • Руководство по написанию компонент
  • Построение приложений, работающих с базами данных
  • Руководство по генератору отчетов ReportSmith
  • Руководство по SQL Links

В составе Delphi входит 5 интерактивных обучающих систем, документация в электронном виде и около 10 Мб справочной информации.

Требования к аппаратным и программным средствам

  • Windows 3.1 и выше
  • 27 Mb дискового пространства для минимальной конфигурации
  • 50 Mb дискового пространства для нормальной конфигурации
  • процессор 80386, а лучше 80486
  • 6-8 Mb RAM

Заключение

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

НОВОСТИ ФОРУМА
Рыцари теории эфира
01.10.2020 — 05:20: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]69vJGqDENq4[/Youtube][/center]
[center]14:36[/center]
Osievskii Global News
29 сент. Отправлено 05:20, 01.10.2020 г.’ target=_top>Просвещение от Вячеслава Осиевского — Карим_Хайдаров.
30.09.2020 — 12:51: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Ok]376309070[/Ok][/center]
[center]11:03[/center] Отправлено 12:51, 30.09.2020 г.’ target=_top>Просвещение от Дэйвида Дюка — Карим_Хайдаров.
30.09.2020 — 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ — Upbringing, Inlightening, Education ->
[center][Youtube]VVQv1EzDTtY[/Youtube][/center]
[center]10:43[/center]

интервью Раввина Борода https://cursorinfo.co.il/all-news/rav.
мой телеграмм https://t.me/peshekhonovandrei
мой твиттер https://twitter.com/Andrey54708595
мой инстаграм https://www.instagram.com/andreipeshekhonow/

[b]Мой комментарий:
Андрей спрашивает: Краснодарская синагога — это что, военный объект?
— Да, военный, потому что имеет разрешение от Росатома на манипуляции с радиоактивными веществами, а также иными веществами, опасными в отношении массового поражения. Именно это было выявлено группой краснодарцев во главе с Мариной Мелиховой.

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

[center][Youtube]CLegyQkMkyw[/Youtube][/center]
[center]10:22 [/center]

Доминико Риккарди: Россию ждёт страшное будущее (хотелки ЦРУ):
https://tainy.net/22686-predskazaniya-dominika-rikardi-o-budushhem-rossii-sdelannye-v-2000-godu.html

Завещание Алена Даллеса / Разработка ЦРУ (запрещено к ознакомлению Роскомнадзором = Жид-над-рус-надзором)
http://av-inf.blogspot.com/2013/12/dalles.html

[center][b]Сон разума народа России [/center]

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

22.01.2011, 09:10

Классы и объекты
Добрый день всем.Хотел узнать кое что,надеюсь вопрос будет соответствовать название темы:) На.

Классы и объекты
Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с.

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

Объекты и классы
Всем привет! Может кто-то нормальным русским языком объяснить, что такое классы и объекты, как.

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

22.01.2011, 09:16 2 18.04.2011, 23:58 3

Может вам это поможет.

Тема 2.2.41. Классы и объекты

1. Основные понятия
2. Составляющие класса
3. Объявление класса

1. Основные понятия

Классами в Object Pascal называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. Понятие класса разработчиками Object Pascal было заимствованно из языка Си++.
Всякий экземпляр класса называется объектом. По структуре и способу доступа класс в некоторой степени напоминает запись.
Важным отличием классов от других типов является то, что объекты класса всегда распределяются в куче, поэтому объект-переменная фактически представляет собой лишь указатель на динамическую область памяти. Однако в отличие от других указателей при ссылке на содержимое объекта запрещается использовать символ «^» за именем объекта:
Пример описания:

Таким образом, по умолчанию непосредственным родилем любого пользовательского класса считается класс TObject.
Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещении от TObject к его потомкам. Каждый потомок дополняет возможности своего родителя новыми и передает их своим потомкам.
Полиморфизм – это свойство классов решать схожие по смыслу проблемы разными способами. В рамках Object Pascal поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.
В Object Pascal полиморфизм достигается не только описанным выше механизмом наследования и перекрытия методов родителя, но и их виртуализацией, позволяющей родительским методам обращаться к методам своих потомков.

2. Составляющие класса

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

В контексте программы свойство ведет себя как обычное поле. Разница между полем и свойством заключается в том, что при обращении к свойству автоматически подключается соответствующий метод: при передачи свойству нового значения – метод, описанный после write; если же свойство передает свое значение – метод read. Если нет необходимости в специальных действиях при чтении или записи свойства, вместо имени соответствующего метода можно указывать имя поля.Если необходимо, чтобы поле было доступно только для чтения или только для записи, следует опустить соответственно часть write или read. Вообще говоря, свойство может и не связываться с полем. Фактически оно описывает один или два метода, кото рые осуществляют некоторые действия над данными того же типа, что и свойство.

3. Объявление класса

Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (декларированные), private (личные), protected (защищенные), public (доступные) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем – методы и свойства.
Секции определяют области видимости элементов описания класса. Секция public не накладывает ограничений на область видимости перечисляемых в ней полей, методов и свойств – их можно вызывать в любом другом модуле программы. Секция published также не ограничивает область видимости, однако в ней перечисля ются свойства, которые должны быть доступны не только на этапе исполнения, но и на этапе конструирования программы (т. е. в окне Инспектора Объектов). Секция published используется только при разработке нестандартных компонентов. Среда Delphi помещает описания компонентов, вставленных в форму, в специальную секцию без названия, которая располагается сразу за заголовком класса и продолжается до первой объявленной секции. Эта секция – published. В нее не следует помещать собственные элементы описания класса или удалять из нее элементы, вставленные средой. Секция private сужает область видимости до минимума: личные элементы описания доступны только внутри методов данного класса и подпрограммах, находящихся в том же модуле, где описан класс. Элемент, объявленный в секции private, становится недоступным даже ближайшим потомкам класса, если они размещаются в других модулях. Секция protected доступна только методам самого класса, а также любым его потомкам независимо от того, находятся ли они в том же модуле или нет. Наконец, секция automated используется только для объявления свойств и методов, которые будут добавлены к так называемому интерфейсу OLE-объектов Автоматизации; область видимости членов этой секции не ограничена.
В Object Pascal разрешается сколько угодно раз объявлять любую секцию, причем порядок следования секций не имеет значения. Любая секция может быть пустой.
Класс может объявляться только в интерфейсной области модуля или в самом начале области реализации. Нельзя определять классы в разделе описаний подпрограмм.

Borland Delphi как средство разработки масштабируемых приложений

Группа Пользователей Delphi, редактор русскоязычного электронного издания Delphi Interactive Journal. FidoNet 2:5020/87.46

1. Проблема масштабируемости приложений.

Одной из наиболее «горячих» тем последних лет в области компьютерной обработки информации и баз данных (БД) стала проблема масштабируемости 1) приложений, работающих с БД.

«Масштабируемость» — способность системы адаптироваться к расширению предъявляемых к ней требований и возрастанию объемов решаемых ею задач. В применении к приложениям, работающим с БД, понятие масштабируемости подразумевает возможность перехода на качественно более мощные СУБД с минимумом изменений в самих приложениях. В подавляющем большинстве случаев это перенос desktop-приложений в архитектуру клиент-сервер (Upsizing). В силу отличия традиционных концепций desktop-БД и серверных-БД этот процесс вызывает множество споров и вопросов. В чем же состоят основные проблемы переноса приложений в архитектуру клиент-сервер ?

В то время как desktop-БД подразумевают отношения между «записями» и «полями», основой серверной концепции является «множество» данных (set-oriented databases). Отсутствие единого структурированного языка построениия запросов в одном случае, и навигационных методов доступа, в другом, сильно усложняют upsizing. А если вспомнить о том, что desktop-БД не имеют средств поддержания целостности данных (в несколько меньшей степени это относится к Paradox), а тем более возможностей гибких средств управления полномочиями пользователей (security access level), становится понятным, что идеология desktop-приложений коренным образом отличается от идеологии клиент-серверных приложений.

Понятие масштабируемости тесно связано и со свойством интероперабельности. Что же это такое в применении к приложениям БД ? Интероперабельность таких систем предполагает работу с гетерогенными данными, то есть с данными, хранящимися в разных форматах или на разных SQL-серверах. Причем данные необязательно должны храниться в традиционных БД (примером может служить оболочка Lotus Notes или специализированные геоинформационные системы).

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

Решению этих проблем посвящена технология, предлагаемая фирмой Borland. Ниже мы рассмотрим средство создания Windows-приложений — Borland Delphi.

Прежде чем говорить о создании frontend-приложений 2) в Delphi, кратко познакомимся с общими возможностями этого продукта без привязки к базам данных.

2. Подход Delphi к разработке Windows-приложений

Borland Delphi относится к классу RAD-систем (Rapid Application Development — среда быстрой разработки приложений).В основе этого продукта лежит компилятор с языка третьего поколения Object Pascal (семейство языков программирования Turbo Pascal). Визуальные средства программирования «two-way tools» 3) позволяют, в свою очередь, создать работающее многофункциональное приложение, практически не написав ни единой строки кода.

Ядром визуальных средств программирования Delphi является Visual Component Library (VCL) — объектно-ориентированная библиотека компонентов ( их в стандартной поставке более 75 ), предназначенная для создания пользовательского интерфейса и доступа к системным ресурсам как операционной системы (DOS), так и графической оболочки (Windows), а также для работы с БД.

Рассмотрим особенности процесса разработки приложения в Delphi.

«Компонентная» архитектура приложений Delphi предоставляет интуитивно понятный подход к программированию в Windows. Этот подход, в первую очередь, заключается в визуальном конструировании GUI-форм 4) приложения посредством помещения в формы тех или иных системных и интерфейсных объектов ( из так называемой «палитры компонент» ) и установке их свойств и поведения. Те читатели, которые хотя бы раз запускали Borland dBase for Windows или Paradox for Windows, увидят в Delphi знакомое средство — Object Inspector. Этот инструмент позволяет несколькими нажатиями кнопки мыши установить или изменить основные свойства компонент, а также привязать к событиям, на которые может реагировать выбранный объект, код, выполняющий те или иные действия. Компонентная архитектура, основывающаяся на объектно-ориентированном подходе, является одним из решений проблемы повторного использования кода.

Любую форму или все приложение можно сохранить в качестве шаблона (template) и повторно использовать в новых проектах. Для этого Вы сможете воспользоваться так называемой «галереей» Delphi (см. Рис. 1)

Экономии времени при разработке приложения можно достичь использованием так называемых «экспертов». «Эксперт» представляет собой встраиваемый в среду Delphi программный блок (например, реализованный в виде DLL — библиотеки динамической компоновки Windows), который, после диалога с разработчиком, генерирует исходный код и формы уже с развитыми функциональными возможностями. Для создания новых «экспертов» Delphi предоставляет ряд модулей VCL (см. Рис. 2)

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

Для просмотра иерархии классов, получения информации о модулях, а также объявлениях типов, констант, переменных и функций предназначено средство визуальной среды разработки Delphi — Object Browser(см. Рис. 3).

Безусловно стоит упомянуть и о поддержке со стороны Delphi таких средств групповой разработки как, например, Intersolv PVCS (версии 5.1).

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

Так как речь идет о Delphi как о профессиональном инструменте, следует отметить несколько важных особенностей языка Object Pascal.

В этом языке реализован ряд расширений основных объектно-ориентированных признаков — инкапсуляции и полиморфизма. С введением понятия свойства (property) стала стираться грань между данными объекта и методами доступа к этим данным. Поля процедурного типа используются для динамического изменения поведения экземпляров объектов на этапе выполнения приложения. Механизм RTTI (RunTime Type Information) и функции классов позволяют программисту более гибко определять параметры объектов.

Возможности создания новых визуальных компонент за счет расширения стандартной иерархии классов, наряду со средствами настройки палитры компонент, существенно повышают производительность работы в Delphi (в варианте Delphi Client/Server большинство модулей VCL представлено в исходных текстах).

Объектно-ориентированные средства обработки исключительных ситуаций (exception) крайне важны для тех приложений, которые особенно «критичны» к сбоям. К таким системам как раз и относятся приложения для работы с БД.

3. Borland Database Engine — инструмент доступа к данным

В основе взаимодействия Delphi с БД лежит Borland Database Engine. Этот инструмент представляет из себя набор функций для работы с БД различных форматов — IDAPI, драйверы наиболее распространенных форматов БД и утилиту настройки драйверов и псевдонимов. Остановимся на этих составных частях BDE более подробно. (см. Рис. 4)

IDAPI (Integrated Database Application Program Interface) насчитывает более 150 функций для доступа к БД. Механизм, лежащий в основе этого API, позволяет единообразно работать как с локальными, так и с удаленными (SQL) данными. В основе этого механизма лежит понятие «курсора». Курсоры позволяют, с одной стороны, работать с удаленными данными, используя навигационные методы, с другой — обращаться к локальным данным через SQL. За счет такой идеологии стираются принципиальные различия в построении desktop-приложений и клиентских приложений. Как следствие, разработчики, использующие IDAPI для доступа к данным, могут позволить себе в одном и том же приложении обращаться к разным форматам данных, формируя «гетерогенные» запросы (heterogeneous joins).

Следующее SQL-выражение показывает как связать три таблицы разных форматов (Paradox, Interbase и Sybase) между собой:

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

Набор функций IDAPI включает в себя также, средства вторичного уточнения результатов запросов — фильтры. Фильтры BDE позволяют динамически ограничивать объемы информации, связанные с курсорами. Функционируя на уровне клиентского приложения, фильтры позволяют уменьшить сетевой траффик при работе с удаленными данными, так как вся информация о фильтруемых данных уже связана с соответствующим курсором клиентского приложения. Фильтры IDAPI поддерживают сложные логические условия, построенные в виде дерева триад 5). (см. Рис. 5)

Рисунок 5.
Логика построения фильтра IDAPI

Для реализации единообразия доступа к данным, вне зависимости от их формата, BDE работает со всеми данными через так называемые «драйверы». Разработчику приложений не требуется знание механизма взаимодействия динамических библиотек IDAPI с драйверами. Достаточно лишь уметь их настраивать с помощью утилиты настройки BDE.

Утилита настройки — BDE Configuration Utility — позволяет сконфигурировать такие параметры драйверов, как используемый национальный языковой драйвер, режим разделения при совместном доступе к данным, представления даты, времени и чисел, псевдонимы соединений и многое другое (см. Рис. 6).

Важной составной частью BDE является технология Idapter, разработанная Borland совместно с компанией Q+E Software. Она заключается в трансляции IDAPI-вызовов в вызовы стандартных методов интерфейса ODBC. Это позволяет существенно расширить ряд доступных СУБД.

В BDE поддерживаются два языка запросов — SQL и QBE, опять-таки для всех форматов БД, включая ODBC-драйверы. Кроме того, IDAPI содержит функции для реструктуризации данных.

Стоит упомянуть, что BDE как основа взаимодействия с данными, кроме Delphi, используется в Borland Paradox for Windows и dBase for Windows.

4. Архитектура database — компонент Delphi

Доступ к базам данных из инструментов разработки Borland не ограничивается набором API-функций. Напротив, именно объектно-ориентированная надстройка над IDAPI является основой взаимодействия клиентских приложений с базами данных. В Delphi такой надстройкой являются Visual Data Objects (VDO) — часть VCL, ориентированная на работу с БД.

В соответствии с логикой Visual Component Library компоненты VDO (их более 25) разделены на две основные группы: Data Access components и Data Control components. Как следует из названий этих групп, первая из них является «системной», то есть компоненты, входящие в нее отвечают за организацию доступа к БД, вторая группа отвечает за ввод и отображение данных.

Прежде чем говорить о принципах использования VDO, перечислим основные компоненты VDO.

Компоненты доступа к данным:

  • TDatabase — «база данных»;
  • TTable — таблица БД;
  • TQuery — SQL-запрос;
  • TStoredProc — хранимая процедура;
  • TDataSource — источник данных;
  • TReport — «отчет», взаимодействующий с run-time ReportSmith (см. ниже) через механизм DDE.

  • TDBNavigator — компонента предоставляющая возможности навигации по «множеству данных»;
  • TDBEdit, TDBGrid, TDBListBox, TDBComboBox, TDBImage и др. — наследники стандартных и расширенных интерфейсных элементов Windows (в иерархии VCL), которые ориентированы на работу с БД.

Компоненты TTable и TQuery не отображаются во время выполнения приложения, но они обеспечивают связь с БД через BDE, являясь, по идеологии VDO, рабочим «множеством данных» (dataset). В иерархии классов VDO эти компоненты, вместе с TStoredProc, имеют общего предка — TDBDataSet — «множество данных».

Отображаемые компоненты (Data Control) ссылочно (через свойства экземпляров) связаны с TTable и TQuery и так называемым «источником данных» — TDataSource. Такая инфраструктура стирает различия между работой пользователя с таблицей БД и результатами запроса, не требуя дополнительного программирования передачи данных между интерфейсными элементами и БД.

Интересной особенностью среды визуальной разработки Delphi является возможность работы с «живыми» данными (live-data). Такая возможность подразумевает отображение реальных данных в Data Controls еще на этапе конструирования форм (design-time). Такое свойство среды Delphi облегчает работу по размещению видимых компонентов на форме, в зависимости от формата отображения данных, так как программист, не компилируя и не запуская приложение, может увидеть окончательный результат.

В остальном идеология работы с VDO-компонентами ни чем не отличается от обычных компонентов VCL Delphi.

5. Дополнительные инструментальные средства, входящие в Delphi

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

SQL Links (*) — набор IDAPI-драйверов для связи приложений с удаленными SQL-серверами БД, например Oracle, Sybase,InterBase и Informix.

Генератор отчетов ReportSmith, в зависимости от варианта (Delphi for Windows или Delphi Client/Server) предоставляет соответствующие возможности доступа к данным и обеспечивает интерфейс для создания отчетов с использованием «live-data conception» (просмотр реальной информации из БД на этапе конструирования отчета). Запросы, перекрестные таблицы, графики, шаблоны и мн. др. — все это без ограничений объема получаемого отчета.

ReportSmith Run-Time — среда для доступа к отчетам из приложений, написанных на Delphi, реализованная в виде Windows MDI-приложения. Взаимодействие с приложениями осуществляется через DDE-обмен с приложением (см. выше TReport — Data Access Component).

Local InterBase Server представляет из себя однопользовательский, работающий в среде MS Windows, «desktop»-SQL-сервер, для построения и тестирования Delphi- приложений с последующим масштабированием их на промышленные БД, например Oracle, Sybase, Informix или Interbase. Обладает практически всеми возможностями реального InterBase Workgroup Server 4.0, включая перенос созданных БД на промышленный вариант сервера (см. статью П. Красюка «Borland InterBase . » , СУБД N 2/1995).


Windows ISQL (WinISQL)-интерактивный SQL. Средство, позволяющее строить и выполнять с клиентских, Windows-рабочих мест SQL-запросы к локальному и удаленному InterBase-серверу. С помощью WinISQL вы можете, без написания специальных SQL-скриптов, получить полную информацию по метаданным БД, например триггерам, доменам, хранимым процедурам и т.п.

Interbase Server Manager — клиентское Windows-приложение, предназначенное для администрирования баз данных Interbase 4.0, как локальных, так и серверных.

Database Expert — «эксперт» Delphi, облегчающий построение скелета приложения, работающего с БД.

Visual Query Builder (*) — средство среды Delphi, позволяющее без знания SQL визуально строить сложные запросы к БД, с последующей генерацией текста запроса на SQL.

Database Desktop (DBD), являясь «минимальным» ядром Borland Paradox for Windows, предоставляет возможности по созданию, изменению структуры, построению запросов к удаленным и локальным данным.

6. Delphi: от настольных систем — к архитектуре клиент-сервер

В большинстве случаев Delphi-приложения, созданные для работы с локальными данными, могут получить доступ к данным на удаленном сервере, с минимумом изменений самого приложения. Если конгруэнтный (сравнимый по структуре таблиц) источник данных (data source) настроен на SQL-сервер, вы можете «перенаправить» приложение, имевшее раньше доступ к локальным данным, всего лишь изменив свойство DatabaseName компонент TTable или TQuery. А если, разрабатывая desktop-приложение, вы планировали в перспективе переход на более высокий уровень технологии (upsizing), затраты на перенос системы в архитектуру клиент-сервер могут заключаться только в настройке псевдонимов соединений BDE.

Следует, однако, понимать, что при переходе к технологии клиент-сервер, вы захотите использовать все предоставляемые этой технологией возможности, сложив с клиентских приложений на сервер БД часть функциональности, отвечающую за поддержание целостности данных (триггеры), часто повторяющихся вычислений (хранимые процедуры) и т. п. В этом случае, масштабирование 7) системы повлечет за собой только уменьшение исходного кода. Хотя очевидно, что там где больше возможностей, еще больше запросов (уже не в смысле SQL-выражений) .

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

2) «Frontend» (в отличие от desktop-приложений) — клиентские приложения, работающие с данными в архитектуре клиент-сервер

3) «two-way tools» — визуальные средства программирования, позволяющие синхронизировать процесс конструирования интерфейсных форм и изменение исходных текстов разрабатываемой программы.

4) GUI — Graphic User Interface, стандарт польовательского интерфейса в оконных графических средах.

5) Триады — понятие теории синтаксического анализа. Под триадой подразумевается конструкция: два параметра и их отношение. В конструкции «CustomerNo» > 2000″ параметрами являются «CustomerNo» и константа «2000», а отношением — операция сравнения «>»

6) В данном случае рассматривается Delphi в варианте Client/Server. Инструменты, не входящие в desktop-версию Delphi for Windows, помечены (*).

7) В данном контексте под «масштабированием» понимаестя как-таковой процессс переноса приложений, работающих с локальными данными, в архитектуру клиент-сервер.

Поделитесь материалом с коллегами и друзьями

Разработка кроссплатформенных мобильных приложений в Delphi #4

В четвертой части настоящего цикла мы вновь возвратимся к разработке «настольного» приложения и попытаемся более подробно разобраться с технологией связывания объектов LiveBinding. Данный механизм универсален и подходит как для мобильных, так и настольных приложений. Более того, этот механизм работает и в VCL. Знакомство же с LiveBinding лучше начать именно в классическом проекте.

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

Итак, в модуле данных поместим два компонента TFDTable и настроим их на работу с таблицами tblUnit и tblFoodstuff (по аналогии с набором данных для работы с таблицей tblRecipe). Двойным щелчком на компоненте откроем редактор полей, добавим все поля (пункт контекстного меню Add all fields).

Важно понимать, что практически во всех реализациях компоненты наборов данных наследуются от класса TDataSet и работают с некоторым набором полей. Здесь имеются в виду экземпляры классов, наследников TField (TIntegerField, TStringField и т.д.). Набор полей можно создать в режиме проектирования (design-time) и настроить свойства полей с помощью «инспектора объектов». Если рассматривать TFDTable, то помимо полей, соответствующих физическим полям таблицы, можно создать и другие типы полей, например, вычисляемое (Caclulated) или подставляемое (LookUp) поле. Значения этих полей будут вычисляться динамически в ходе работы программы, а не браться из источника данных. Чуть ниже мы рассмотрим пример создания таких полей.

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

Ниже приведен фрагмент файла формы модуля данных uDM.dfm, содержащий описание одного из наборов данных и связанных с ними полей. Текстовое представление формы можно получить, если в контекстном меню формы выбрать пункт «View as Text». Для того, что бы вернуться в обычный режим представления формы, следует нажать «View as Form».

Созданные наборы данных, необходимо открыть при запуске программы. Модифицируем процедуру ConnectToDB следующим образом:

Следующим шагом разработки приложения станет создание новой формы для отображения и редактирования таблицы (списка) единиц измерения. Естественно, это будет FM HD форма. Значение свойства Position установим как poMainFormCenter, для того, что бы данная форма отображалась посредине главной формы.

В список используемых модулей секции implementation добавим модуль данных:

Поместим на форме компоненты TGrid, TPanel. На панели поместим кнопку, поле ввода и метку TLabel, как это показано на рисунке. Единственное назначение кнопки – закрыть форму. Свойству ModalResult определим значение mrOk.

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

С помощью редактора LiveBinding свяжем визуальные компоненты с источниками данных. В самых общих чертах, LiveBinding это механизм, позволяющий связывать свойства различных объектов, но не при помощи жёсткой ссылочной компилированной связи, а на основе гибких выражений (expressions). Механизм LiveBindings базируется на шаблоне «наблюдатель» (observer). Так, изменение некоторого свойства объекта А, с помощью LiveBinding может повлечь за собой изменение свойства объекта Б. Связи между объектами могут быть однонаправленными и двунаправленными. Такой подход очень удобно использовать для отображения данных из наборов данных. Фактически, если в стандартном подходе VCL для отображения данных из таблиц требовались специальные DB-ориентированные (DB-Aware) визуальные компоненты, то LiveBindings позволяет использовать для этой цели самые обычные элементы управления («контролы). Более того, визуальные компоненты не требуют специальной подготовки, для работы с LiveBindings. Преимущество такого подхода очевидно. Давайте рассмотрим данный процесс чуть внимательнееболее подробно.

Итак, откроем LiveBinding Designer и найдем элемент, соответствующий набору данных, FDTUnits. Если элементы из модуля данных не отображаются в LiveBinding дизайнере, то следует сделать обновление (в контекстном меню выбрать пункт Refresh Designer). Попытаемся связать значение свойства Text поля ввода Edit1 со значением поля UnitName в наборе данных. Используем обычное перетаскивание (drag-n-drop).

Что же произошло на самом деле?

Помимо того, что в дизайнере визуально отобразилась связь, на форме появилось два новых не визуальных компонента. Компонент TBindSourceDB с помощью свойства DataSet осуществляет связь с исходным набором данных (в нашем случае DM.FDTUnits). Обратите внимание на то, что как только была установлена связь между свойством визуального компонента и полем, в LiveBinding дизайнере объект DM.FDTUnits оказался вложенным в новый объект BindSourceDB1, и этот объект появился на форме.

Нетрудно догадаться, какое значение свойства DataSet будет у данного объекта. Для тех, кто мыслит в терминах «классической VCL разработки», проще всего воспринимать TBindSourceDB как некий аналог TDataSource. Вы можете точно также «бросить» этот компонент на форму и указать значение свойства DataSet. А затем «привязать» к нему контрол. Только теперь это будет не специальный DB-контрол, а любой визуальный компонент. А, следовательно, вы должны указать, какое именно свойство компонента и каким образом должно отображать (и, возможно, изменять) данные из набора данных. Давайте посмотрим, как это сделать.

Кроме BindSourceDB1 на форме появился и еще один объект — BindingsList1. Он является хранилищем для всех связей между объектами. Связи эти могут быть разных типов. Как видно из рисунка, в нашем случае в BindingsList была добавлена связь типа TLinkControlToField.

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

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

Теперь свяжем Grid и BindNavigator с набором данных. Для компонента BindNavigator достаточно задать свойство DataSource. При этом в списке связей BindingsList1 новая связь не создается. А вот при связывании Grid’а, напротив, создается объект типа TLinkGridToDataSourceBindSourceDB.

В инспекторе объектов мы можем отредактировать список полей. Для этого вызовем свойство Columns и в редакторе полей нажмем кнопку Add All Fields. К слову, этот редактор очень напоминает редактор полей в TDBGrid. Для каждого из полей можно отредактировать свойства, в частности ширину поля и текст заголовка. Кроме этого, можно создать новое поле, и задать выражение (свойство CustomFormat) для отображения в столбце таблицы. Так для того, что бы отобразить комбинацию Id и аббревиатуры, мы можем задать такое выражение:

Как следует из вышесказанного, механизм LiveBinding предоставляет достаточно широкие возможности для отображения данных. LiveBinding дизайнер, в свою очередь, позволяет визуализировать и упростить процесс связывания визуальных компонентов с источником данных.
В заключение рассмотрим еще один прием работы с LiveBinding. В дизайнере сделайте активным поле Abbr элемента DM. FDTUnits и в контекстном меню выберите пункт Link to new control… (Связать с новым элементом управления…). В появившемся списке выберите значение TEdit.

Нажмите кнопку «Ок» и на форме будет размещен новый элемент управления TEdit и «приклеенная» к нему метка TLabel. Вам останется только поместить данный объект в нужную позицию и задать нужное значение свойства Text метки.

Вызов форм редактирования списков из главной формы организуем с помощью меню. На главной форме поместим компонент TMainMenu. Двойным щелчком вызовем редактор меню. И создадим несколько пунктов, так как это показано на рисунке.

Для пункта меню “Единицы измерения” зададим следующий обработчик события OnClick:

Естественно, модуль с формой-списком необходимо подключить к главной форме.

Форму-список продуктов вы можете сделать по аналогии.

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

Основные понятия и средства языка программирования Borland Delphi

Основные понятия и средства языка программирования

Среда программирования. Алфавит языка программирования. Идентификаторы. Переменные и константы. Массивы. Типы данных. Описание (объявление) переменных и констант. Операции. Стандартные функции. Выражения.

Операторы (инструкции). Комментарии. Оператор (инструкция) присваивания. Ввод и вывод данных. Операторы (инструкции) передачи управления и цикла. Подпрограммы. Процедуры и функции. Работа с символами и строками

Содержимое разработки

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

Среда программирования. Алфавит языка программирования. Идентификаторы. Переменные и константы. Массивы. Типы данных. Описание (объявление) переменных и констант. Операции. Стандартные функции. Выражения.

Основные понятия и средства языка программирования окончание

Операторы (инструкции). Комментарии. Оператор (инструкция) присваивания. Ввод и вывод данных. Операторы (инструкции) передачи управления и цикла. Подпрограммы. Процедуры и функции. Работа с символами и строками

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

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

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

Среда программирования продолжение

Окна среды программирования Delphi 7

Программы = Borland Delphi 7 = Delphi 7 , после выполнения которых на экране появятся окна этой среды программирования . » w

Среда программирования продолжение

Запуск среды программирования Delphi 7 может быть выполнен с использованием Главного меню операционной системы Windows следующей последовательностью действий: Пуск = Программы = Borland Delphi 7 = Delphi 7 , после выполнения которых на экране появятся окна этой среды программирования .

Среда программирования продолжение

Главное окно среды программирования Delphi содержит главное меню Delphi (команды File, Edit, View, Run, Help и другие), панели инструментов с кнопками и Палитру компонентов (обычно справа вверху).

Команды главного меню Delphi открывают доступ к меню с более конкретными командами второго уровня.

Быстрый доступ к наиболее важным и употребительным командам можно получать также с использованием контекстных меню (например, после щелчка правой кнопкой «мыши»).

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

Среда программирования продолжение

Палитра компонентов обычно занимает правую часть главного окна Delphi . С помощью компонентов создаются видимые в окнах программ элементы (кнопки, списки, надписи, меню и т.д.).

Прочие окна среды программирования ( Object TreeView , Object Inspector , а также окно формы и окно программного модуля – это окна обычно с заголовками Form1 и Unit1.pas ) используются для создания проекта программного приложения.

Для прекращения работы среды программирования Delphi можно закрыть главное окно среды программирования или выполнить последовательность команд меню File = Exit .

Программы = Borland Delphi 7 = Delphi 7 , на экране появятся окна среды программирования, предназначенные главным образом для формирования видимых в окнах программ элементов (кнопок, списков, надписей, меню и т.д.) и для создания процедур обработки событий, связанных с этими элементами (таких, например, событий, как нажатие на кнопку, выбор строки из списка или команды из меню и т.д.), или, короче говоря, появляются окна, предназначенные для создания проекта программного приложения типа Application . » w

Среда программирования продолжение

При запуске среды программирования после выполнения последовательности действий: Пуск = Программы = Borland Delphi 7 = Delphi 7 , на экране появятся окна среды программирования, предназначенные главным образом для формирования видимых в окнах программ элементов (кнопок, списков, надписей, меню и т.д.) и для создания процедур обработки событий, связанных с этими элементами (таких, например, событий, как нажатие на кнопку, выбор строки из списка или команды из меню и т.д.), или, короче говоря, появляются окна, предназначенные для создания проекта программного приложения типа Application .

Среда программирования продолжение

Создание приложений типа Application , кроме самых простых, требует предварительного ознакомления с основами программирования на языке Pascal , расширение которого ( Object Pascal или Delphi )–является языком среды программирования Delphi .

Для начального изучения программирования на языке Pascal в среде программирования Delphi существует возможность использования так называемого консольного приложенияConsole Application .

Среда программирования продолжение

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

New = Other. и затем в появившемся окне New Items на вкладке New использовать значок Console Application . » w

Среда программирования продолжение

Для создания консольного приложения в среде программирования Delphi необходимо выполнить команды меню File = New = Other. и затем в появившемся окне New Items на вкладке New использовать значок Console Application .

Окна среды программирования Delphi 7 в режиме консольного приложения.

Алфавит языка программирования Delphi ( Object Pascal ) включает в себя совокупность символов, используемых для записи элементов языка:

цифры 0 1 2 3 4 5 6 7 8 9 ;

большие и маленькие латинские буквы

A B C D E F G H I J K L M N O P R S T U V W X Y Z

a b c d e f g h i j k l m n o p r s t u v w x y z и символ подчеркивания _ ; специальные символы + — * / = , . : ; ‘ ( ) [ ] < >^ @ $ # и символ » пробел «.

Символ ; используется при записи программы для разделения операторов, объявлений и описаний.

Идентификаторы предназначены для обозначения переменных, функций и других объектов в программе.

Идентификатор может состоять из букв, цифр и символов подчеркивания _ , но начинаться он должен только с буквы латинского алфавита или символа подчеркивания _ .

Большие и маленькие буквы в идентификаторах не различаются.

Между двумя идентификаторами в программе должен быть хотя бы один разделитель (пробел, символ конца строки, комментарий или другой специальный символ или комбинация специальных символов).

Идентификаторы различаются по их первым 63 символам.

Примеры идентификаторов : a A x bc ff vv1 v_W summa DELTA2 alfa5

Идентификаторы для разных объектов не должны совпадать (включая также возможные совпадения, например, имени проекта приложения с именем объекта в этом приложении).

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

Переменная в программе обозначается идентификатором или, иначе говоря, в качестве имени переменной используется идентификатор .

Переменные и константы окончание

Константа – это целое или дробное число, строка символов или отдельный символ.

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

числовых – 123 0.1 0.0 -5.03 0 1 1500 1.5e3 1.5E3

( десятичным разделителем является точка ;

запись 1.5e3 или 1.5E3 означает 1.5•103 ; запись — 23e-2 означает — 23•10-2 );

строковых – ‘***Result: ‘ ‘s=’ (строковая константа заключается апострофы, не включаемые в константу ; при необходимости включения в константу апострофа он удваивается, например, константа , состоящая из одного апострофа, запишется как »» ).

Массив представляет собой совокупность последовательно расположенных в памяти областей памяти с однотипными данными. Эти области памяти называются элементами массива (аналогом одного элемента массива может служить переменная ).

Массив имеет имя, являющееся общим для всех элементов массива . Доступ к отдельному элементу массива осуществляется по номеру (или индексу ) этого элемента. В качестве индексов чаще всего используются значения целого типа.

Массивы могут быть одномерными и многомерными .

В одномерном массиве каждому его элементу соответствует один индекс , в многомерном – соответствуют несколько индексов .

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


Тип данных определяет способ кодировки данных, объем занимаемой ими памяти и действия, которые можно выполнять с этими данными.

Типы данных используются для обозначения данных различной структуры и длины.

Далее приведены примеры наиболее часто используемых типов данных .

Целые типы данных (для представления целых чисел в указанном диапазоне):

Integer – -2 147 483 648 – 2 147 483 647 для Delphi 7 (-32 768 – 32 767 для Turbo Pascal );

Word – 0 – 65 535;

Shortint – -128 – 127;

Longint – -2 147 483 648 – 2 147 483 647.

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

Real – 5,0•10 -324 – 1,7•10 308 для Delphi 7 (2,9•10 -39 – 1,7•10 38 для Turbo Pascal );

Single – 1,5•10 -45 – 3,4•10 38 ;

Double – 5,0•10 -324 – 1,7•10 308 ;

Extended – 3,4•10 -4932 – 1,1•10 4932 .

Charсимвольный тип данных (для представления любого символа из набора допустимых символов ; для каждого символа отводится один байт памяти ).

Stringстроковый тип (для представления строк символьных величин ).

Booleanлогический тип данных (величины этого типа занимают в памяти 1 байт и могут принимать значения True ( Истина ) или False ( Ложь ); внутренним представлением для значения False является , для значения True является 1 ).

Описание (объявление) переменных и констант начало

Описание (объявление) переменных начинается с ключевого слова var и обязательно должно предшествовать использованию этих переменных в программе .

Описание (объявление) переменных должно быть расположено в так называемом разделе объявления переменных .

Примеры описания (объявления) переменных :

Описание (объявление) переменных и констант продолжение

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

Раздел описания (объявления) именованных констант может находиться в программе в том же месте, где и раздел описания (объявления) переменных.

Примеры описания (объявления) именованных констант :

Const w1=’WORD’; otl=’5′; e=2.71828;

Имя константы отделяется от выражения знаком равенства . Тип константы автоматически распознается на основании типа выражения справа от знака равенства .

Описание (объявление) переменных и констант продолжение

Примеры описаний (объявлений) массивов:

ab: Array [10..100] of Integer;

Здесь z и ab являются одномерными массивами, v – двумерным массивом.

Каждый из элементов массива ab – целое число типа Integer,

каждый и элементов массивов z и v – вещественное число типа Real.

Массив z состоит из 20 элементов (нижняя граница индексов –1, верхняя граница – 20),

массив ab состоит из 91 элемента (нижняя граница индексов –10, верхняя граница – 100),

массив v состоит из 200 элементов (из 20 строк по 10 элементов в каждой).

Описание (объявление) переменных и констант окончание

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

Использование в таких случаях именованных констант позволяет изменять используемые в в разных местах программы значения границ индексов массивов, изменяя лишь значения соответствующих именованных констант в области их описания (объявления).

Операции выполняются порядке их записи слева направо в соответствии с их приоритетами.

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

Хотя бы один из операндов real

Программирование в среде Borland Delphi

Система программирования Borland Delphi, ее возможности и главные преимущества. Применение технологии dbExpress для создания приложений, требующих быстрого доступа к базам данных. Схема доступа к данным через ADO. Иерархия классов наборов данных ADO.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 25.09.2014
Размер файла 99,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Borland Delphi — интегрированная среда разработки ПО для Microsoft Windows на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies.

Система программирования Borland Delphi включает в себя развитые средства для разработки приложений баз данных. С помощью этих средств можно создавать полноценные клиентские приложения баз данных (БД). Среди возможностей таких приложений можно назвать:

· доступ к локальным и удаленным БД;

· оперативный анализ данных.

Доступ к БД можно осуществлять с помощью различных технологий. В Borland Delphi 7.0 доступны следующие технологии:

1. BDE (Borland Database Engine). Базовая технология доступа к БД от фирмы Borland. Позволяет получать доступ к реляционным БД с помощью специальных BDE драйверов или через ODBC драйверы. Исторически является первой технологией доступа к БД в среде Borland Delphi.

2. DbExpress. Более новая и совершенная технология доступа к БД от фирмы Borland. Появилась в 6-й версии Borland Delphi. По сравнению с BDE обеспечивает более быстрый и удобный доступ к данным.

3. ADO (ActiveX Database Objects). Технология доступа к данным от фирмы Microsoft. В свою очередь базируется на технологии OLE-DB. Обеспечивает удобный и надежный доступ к данным, хотя и несколько более медленный, чем в технологиях BDE и dbExpress. Хорошо подходит для работы с системами управления базами данных (СУБД) от фирмы Microsoft (MS Access, MS SQL Server).

4. InterBase. Специализированная технология доступа к серверу БД Borland InterBase. При работе с этой СУБД обеспечивает наивысшую производительность по сравнению с другими технологиями.

Кроме того, сторонними фирмами разработано множество других специализированных технологий доступа к БД конкретных СУБД, таких как Oracle, DB2 и других. Следует отметить, что принципы работы с БД с использованием любой из перечисленных технологий практически одинаковы. Поэтому получив навыки работы с одной из них, перейти к другим технологиям не составляет никакого труда.

BDE. Процессор баз данных Borland Database Engine представляет собой набор динамических библиотек, которые, собственно, и называются процессором БД. Их функции позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения. В процессе работы библиотеки используют вспомогательные файлы языковой поддержки и информацию о настройках среды. Перечисленные функции реализованы в динамических библиотеках.

В составе BDE поставляются стандартные драйверы, обеспечивающие доступ к СУБД Paradox, dBASE, FoxPro и текстовым файлам. Локальные драйверы (рис. 1) устанавливаются автоматически совместно с ядром процессора. Один из них можно выбрать в качестве стандартного драйвера, который имеет дополнительные настройки, влияющие на функционирование процессора БД.

Доступ к данным серверов SQL обеспечивает отдельная система драйверов — SQL Links. С их помощью в Delphi можно без особых проблем разрабатывать приложения для серверов Oracle 8, Informix, Sybase, DB2 и, естественно, InterBase. Эти драйверы необходимо устанавливать дополнительно. Помимо этого, в BDE имеется очень простой механизм подключения любых драйверов ODBC (к примеру, Microsoft Access) и создания на их основе сокетов ODBC.

программирование delphi база данные

Рисунок 1: Структура процессора баз данных ВDЕ

Однако BDE не претендует на всеобъемлющую универсальность и имеет некоторые недостатки. Это, например, снижение скорости работы приложения, недостатки реализации некоторых драйверов и т. д. В документации к Delphi 7 содержится предупреждение, что после 2002 года фирма Borland перестанет поддерживать BDE и рекомендует использовать технологию dbExpress, которая будет рассмотрена позже.

Любое приложение Delphi, работающее с базами данных и написанное с использованием стандартных компонентов доступа к данным, обращается к данным и получает результат при помощи BDE. При этом механизм доступа к данным использует вызовы функций из API BDE.

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

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

Все управление одиночным соединением с какой-либо базой данных в BDE осуществляется компонентом TDatabase. В процессе работы компонент активно использует параметры псевдонимов и драйверов BDE. Обычно компонент TDatabase размешается в модуле данных приложения.

Компоненты доступа к данным, используемые при разработке приложений BDE, располагаются на странице BDE Палитры компонентов. Их общими предками являются классы TBDEDataSet и TDBDataSet. Они обеспечивают работоспособность основных компонентов доступа к данным BDE — TTable, TQuery, TstoredProc.

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

Класс TDBDataSet является непосредственным предком основных компонентов доступа к данным TTаblе, TQuery и TstoredProc. Новые свойства и методы класса обеспечивают соединение набора данных с базой данных и используют функции BDE.

Компонент TTаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE.

Компонент TQuery реализует все основные функции стандартного компонента запроса. Прямым предком компонента является класс TDBDataSet.

Компонент TStoredProc обеспечивает использование в приложениях BDE хранимых процедур. Прямым предком компонента является класс TDBDataSet. Поэтому результатом выполнения хранимой процедуры может быть не только одиночный результат, но и полноценный набор данных.

На странице InterBase Палитры компонентов содержатся компоненты доступа к данным, адаптированные для работы с сервером InterBase и объединенные названием InterBase Express. Компоненты из набора InterBase Express предназначены для работы с сервером InterBase версии не ниже 5.5. Их преимущество заключается в реализации всех функций за счет прямого обращения к API сервера InterBase. Благодаря этому существенно повысилась скорость работы компонентов.

Новые компоненты предоставляют разработчику новые возможности. Среди них:

— улучшенное управление транзакциями (для этого теперь предназначен отдельный компонент TiBTransaction);

— новые компоненты доступа к данным, позволяющие лучше решать распространенные задачи программирования (компоненты TiBDataSet, TIBSQL);

— возможность получения сведений о состоянии базы данных без прямого обращения к ее системным таблицам (компонент TiBDatabaseinfo);

— отслеживание состояния процессов выполнения запросов (компонент TIBSQLMonitor).

Для компонентов InterBase Express соединение с сервером БД осуществляет компонент TIBDatabase.

Механизм доступа к данным InterBase Express использует для обращений к серверу возможности клиентского ПО InterBase, которое должно быть инсталлировано на компьютере. При этом не требуется использовать BDE или любой другой механизм доступа к данным. Но в результате все компоненты InterBase Express, инкапсулирующие набор данных, должны обращаться к базе данных только через компонент соединения TIBDatabase. На самом деле эта особенность не является недостатком в клиентских приложениях, т.к. организация соединения через один специализированный компонент всячески приветствуется и является хорошим тоном в программировании.

Компонент TiBDatabase позволяет выполнять некоторые операции с метаданными базы данных.

В компоненте TiBDatabase отсутствуют средства управления транзакциями, которые вынесены в отдельный компонент TiBTransaction.

Компонент TIBTransaction инкапсулирует средства управления транзакцией при работе с сервером InterBase.

Так как компоненты InterBase Express используют для получения набора данных собственный механизм, то иерархия классов-предков включает только обязательный для всех наборов данных TDataSet класс TiBCustomDataSet, который, собственно, и инкапсулирует механизм доступа InterBase Express.

Для взаимодействия с сервером компоненты InterBase Express используют два класса, TIBXSQLDA и TIBXSQLVAR, которые инкапсулируют важные структуры API InterBase. Эти структуры обеспечивают передачу серверу параметров запроса и возвращение результата выполнения запроса.

Возможности компонентов TIBTable, TIBQuery, TIBStoredProc, TIBUpdateSQL мало чем отличаются от стандартных.

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

Компонент TIBQuery выполняет все стандартные функции компонента запроса и наследует возможности класса TiBCustomDataSet.

Компонент TIBStoredProc полностью соответствует стандартному прототипу.

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

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

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

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

Компонент TiBSQLMonitor отслеживает выполнение запросов на сервере. Он позволяет получать в клиентском приложении сообщения от сервера о выполняемых им операциях.

dbExpress. Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов. ADO предустановлена в операционной системе, но нуждается в настраиваемых провайдерах данных. При необходимости обновить версию ADO, дистрибутив вашего приложения «потяжелеет» более чем на 2 Мбайт.

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

Для функционирования компонентов dbExpress необходим только один драйвер, который взаимодействует напрямую с клиентским программным обеспечением для выбранного сервера БД. В поставку входят драйверы для первых четырех из списка серверов баз данных: DB2, InterBase, MySQL, Oracle и Microsoft SQL Server 2000.

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

Кроме того, технология dbExpress обеспечивает доступ к данным в кроссплатформенных приложениях для Windows и Linux, т. к. применяется и в Delphi и Kylix, а способы ее применения идентичны.

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

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

Компоненты dbExpress располагаются в Палитре компонентов на одноименной странице.

Для создания соединения с сервером в рамках технологии dbExpress приложение должно использовать компонент TSQLConnection. Это обязательный компонент, все остальные компоненты связаны с ним и используют его для получения данных. Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием.Подобно своим аналогам в BDE и ADO компонент TSQLConnection поддерживает механизм транзакций и делает это сходным образом.

Набор компонентов dbExpress, инкапсулирующих набор данных, вполне обычен и сравним с аналогичными компонентами BDE, ADO, InterBase Express. Это компоненты TSQLDataSet, TSQLTable, TSQLQuery, TSQLStoredProc. Компонент TSimpleDataSet также относится к рассматриваемой группе, но т. к. он обладает рядом специфических возможностей, его описание вынесено в отдельный пункт.

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

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

Отображение данных при помощи компонентов со страницы Data Controls также ограничено. Нельзя использовать компоненты TDBGrid и TDBCtrlGrid, а в компоненте TDBNavigator не забудьте отключить кнопки возврата на одну позицию назад и перехода на последнюю запись. Также ничего хорошего не получится из попытки применить компоненты синхронного просмотра. Остальные компоненты можно использовать обычным способом.

Компонент TSQLDataSet является универсальным и позволяет выполнять запросы SQL (подобно TSQLQuery), просматривать таблицы целиком (подобно TSQLTable) или выполнять хранимые процедуры (подобно TSQLStoredProc). Для определения режима работы компонента используется свойство ConimandType.


Компонент TSQLTable предназначен для просмотра таблиц целиком и по основным функциям подобен своим аналогам TTаblе, TADOтаblе,TIBTаblе. Для получения табличного набора данных компонент TSQLTable самостоятельно формирует запрос на сервер, используя для этого возможности, унаследованные от предка TCustomSQLDataSet.

Компонент TSQLQuery повторяет функциональность своих аналогов в BDE, ADO, InterBase Express и позволяет выполнять на сервере запросы SQL клиента.

Компонент TSQLStoredProc инкапсулирует функциональность хранимых процедур для их выполнения в рамках технологии dbExpress. Он подобен другим своим аналогам.

Компонент TSimpleDataSet обеспечивает кэширование полученных данных и сделанных изменений на стороне клиента и последующую передачу их на сервер для фиксации. В отличие от компонента TClientDataSet, основным назначением которого является обслуживание набора данных, полученного от удаленного сервера при помощи серверных компонентов DataSnap, компонент TSimpleDataSet призван быть лишь средством редактирования набора данных в технологии dbExpress. Компонент использует двунаправленный курсор и позволяет редактировать данные, правда только в режиме кэширования. Таким образом, компонент TSimpleDataSet позволяет исправить основные недостатки технологии dbExpress.

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

Интерфейс ISQLDriver инкапсулирует всего три метода для обслуживания драйвера dbExpress. Экземпляр интерфейса создается для соединения и обеспечивает его связь с драйвером.

Интерфейс ISQLConnection обеспечивает работу соединения. Он передает запросы серверу и возвращает результаты, создавая экземпляры интерфейса iSQLCommand; управляет транзакциями; поддерживает передачу метаданных при помощи интерфейса ISQLMetaData.

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

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

Наряду с обычными методами отладки исходного кода, в dbExpress существует возможность контроля запросов, проходящих на сервер через соединение. Для этого используется компонент TSQLMonitor.

Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO).

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

В Палитре компонентов Delphi есть страница ADO, содержащая набор компонентов, позволяющих создавать полноценные приложения БД, обращающиеся к данным через ADO.

Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов (рис. 2). Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

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

Объекты OLE DB создаются и функционируют так же, как и другие объекты СОМ. В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который «умеет» представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

Рисунок 2: Схема доступа к данным через ADO

Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями.

Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO.

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.

Спецификация OLE DB различает следующие типы объектов:

— Перечислитель (Enumerator) выполняет поиск источников данных или других перечислителей. Используется для обеспечения функционирования провайдеров ADO.

— Объект-источник данных (Data Source Object) представляет хранилище данных.

— Сессия (Session) объединяет совокупность объектов, обращающихся к одному хранилищу данных.

— Транзакция (Trasaction) инкапсулирует механизм выполнения транзакции.

— Команда (Command) содержит текст команды и обеспечивает ее выполнение. Командой может быть запрос SQL, обращение к таблице БД и т. д.

— Набор рядов (Rowset) представляет собой совокупность строк данных, являющихся результатом выполнения команды ADO.

— Объект-ошибка (Error) содержит информацию об исключительной ситуации.

Механизм доступа к данным через ADO и многочисленные объекты и интерфейсы реализованы в VCL Delphi в виде набора компонентов, расположенных на странице ADO.

Компонент TADOConnection вобрал возможности перечислителя, источника данных и сессии с возможностями обслуживания транзакций.

Текстовые команды ADO реализованы в компоненте TADOCommand.

Наборы рядов (нотация Microsoft) можно получить при помощи компонентов TADOTable, TADOQuery, TAOostoredProc. Каждый из них реализует способ доступа к конкретному типу представления данных в хранилище.

Компоненты доступа к данным ADO могут использовать два варианта подключения к хранилищу данных. Это стандартный метод ADO и стандартный метод Delphi. В первом случае компоненты используют свойство connectionstring для прямого обращения к хранилищу данных. Во втором случае используется специальный компонент TADOConnection, который обеспечивает расширенное управление соединением и позволяет обращаться к данным нескольким компонентам одновременно.

Компонент TADOConnection предназначен для управления соединением с объектами хранилища данных ADO. Он обеспечивает доступ к хранилищу данных компонентам ADO, инкапсулирующим набор данных.

Применение этого компонента дает разработчику ряд преимуществ:

— все компоненты доступа к данным ADO обращаются к хранилищу данных через одно соединение;

— возможность напрямую задать объект провайдера соединения;

— доступ к объекту соединения ADO;

— возможность выполнять команды ADO;

— расширенное управление соединением при помощи методов-обработчиков событий.

На странице ADO Палитры компонентов Delphi, кроме компонентов соединения есть стандартные компоненты, инкапсулирующие набор данных и адаптированные для работы с хранилищем данных ADO (рис. 3). Это компоненты:

· TADODataSet — универсальный набор данных;

· TАоотаblе — таблица БД;

· TADOQuery — запрос SQL;

· TAoostoredProc — хранимая процедура.

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

Рисунок 3: Иерархия классов наборов данных ADO

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

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

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

Из отрицательных сторон этого метода стоит отметить, что пока изменения находятся на клиенте, они недоступны другим пользователям. В данной ситуации могут возникать потери данных.

Многие компоненты ADO, инкапсулирующие набор записей, должны обеспечивать применение параметров запросов. Для этого в них используется специальный класс TParameters. Для каждого параметра из коллекции класса TParameters создается отдельный класс TParameter. Этот класс является наследником класса коллекции TCollection и инкапсулирует индексированный список отдельных параметров. Главное, для чего предназначен класс TParameters, — содержать список параметров. Класс TParameter инкапсулирует отдельный параметр.

Компонент TADODataSet предназначен для представления набора данных из хранилища данных ADO. Он прост в использовании, имея только несколько собственных свойств и методов, и применяет функции своего предка — класса TCustomADODataSet. Это единственный компонент ADO, инкапсулирующий набор данных, для которого опубликованы свойства, позволяющие управлять командой ADO. В результате компонент представляет собой гибкий инструмент, который позволяет (в зависимости от типа команды и ее текста) получать данные из таблиц, запросов SQL, хранимых процедур, файлов и т. д.

Для запросов SQL можно применять только язык Data Manipulation Language (использовать только SELECT).

Компонент ТАDOTаblе обеспечивает использование в приложениях Delphi таблиц БД, подключенных через провайдеры OLE DB. По своим функциональным возможностям и применению он подобен стандартному табличному компоненту.

В основе компонента лежит использование команды ADO, но ее свойства настроены заранее и изменению не подлежат.

Компонент TADOQuery обеспечивает применение запросов SQL при работе с данными через ADO. По своей функциональности он подобен стандартному компоненту запроса.

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

Для выполнения запросов к источнику данных любой компонент ADO инкапсулирует специальный объект команды ADO. Команде ADO соответствует компонент TADOCommand. Методы этого компонента во многом совпадают с методами класса TCustomADODataSet, хотя этот класс не является предком компонента (рис. 4). Он предназначен для выполнения команд, которые не возвращают наборы данных.

Рисунок 4: Иерархия классов компонента TADOCommand

Так как компоненту TADOCommand нет необходимости обеспечивать работу набора записей, его непосредственным предком является класс TComponent. К его функциональности просто добавлен механизм соединения с БД через ADO и средства представления команды.

Объекты ошибок содержат информацию об ошибке, возникшей при выполнении операции каким-либо объектом ADO.

Процессор баз данных Borland Database Engine 5 реализует стандартные функции доступа к данным и является ПО промежуточного слоя между приложением и базой данных. При помощи системы драйверов и псевдонимов BDE обеспечивает универсальный способ доступа к данным. Специальный набор компонентов доступа к данным Delphi использует BDE. Но при необходимости разработчик может применять функции API BDE напрямую.

Возможности набора компонентов InterBase Express обеспечивают быстрый и эффективный доступ к базам данных на серверах InterBase. Для доступа к данным этим компонентам не требуется ВОЕ, они используют только возможности API InterBase. Часть компонентов обеспечивает быстрый переход со стандартных компонентов, инкапсулирующих набор данных, и повторяет функциональность компонентов ТТаblе, TQuery, TStoredProc и т.д. Компоненты TIBSQL и TiBDataSet полностью основаны на механизмах API InterBase, работают еще эффективнее, но требуют нестандартных приемов работы.

Технология dbExpress предназначена для создания приложений, требующих быстрого доступа к базам данных, хранящимся на серверах SQL. Доступ осуществляется при помощи небольших драйверов, реализованных в виде динамических библиотек. В настоящее время созданы драйверы для четырех серверов баз данных. Это: DB2, InterBase, MySQL, Oracle. Технология dbExpress реализована на основе использования стандартных типов компонентов доступа к данным, проста при распространении (исполняемый файл приложения или одна-две динамические библиотеки). Поддерживает кроссплатформенную разработку для Linux и легко интегрируется в приложения CLX. К недостаткам технологии нужно отнести использование однонаправленных курсоров и ограниченные возможности по редактированию (редактирование возможно только при кэшировании изменений на клиенте или выполнением специальных модифицирующих запросов).

Технология ADO обеспечивает универсальный способ доступа к гетерогенным источникам данных. Благодаря тому, что функции ADO реализованы на основе интерфейсов OLE DB и СОМ, приложению для доступа к данным не требуется дополнительных библиотек, кроме инсталлированного ADO. Компонент TADOConnection обеспечивает соединение с источниками данных через провайдеры OLE DB. Компоненты TADODataSet, TADOTable, TADOQuery, TADOStoredProc обеспечивают использование наборов записей в приложении. Свойства и методы компонентов позволяют создавать полнофункциональные приложения. Компонент TADOCommand инкапсулирует текстовую команду ADO. В дополнение к стандартным возможностям работы с данными, из компонентов можно напрямую обращаться к необходимым объектам и интерфейсам ADO.

Размещено на Allbest.ru

Подобные документы

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

контрольная работа [3,6 M], добавлен 18.10.2012

Построение банков данных. Инструментальные средства баз данных Borland. Принцип работы и архитектура баз данных в Delphi. Навигационный способ доступа к базам данных: операции с таблицей, сортировка и перемещение по набору данных, фильтрация записей.

курсовая работа [642,7 K], добавлен 06.02.2014

Средства языка программирования Delphi. Структурные типы данных. Строковые переменные, массивы, множества, файлы. Механизм классов в C++. Интерфейсный и описательный обзоры классов в Delphi. Работа с текстовыми и бинарными файлами прямого доступа.

курсовая работа [990,4 K], добавлен 07.08.2012

Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам «Символьные переменные и строки», «Массивы», «Работа с файлами», «Создание анимации». Реализация программного модуля, код программы.

отчет по практике [961,6 K], добавлен 21.04.2012

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

отчет по практике [2,1 M], добавлен 11.03.2014

Программа поиска в базе данных в среде Borland Delphi 7.0 Enterprise. Условия и блок-схемы задач. Ввод массива. Текст программ в Delphi, в Паскаль. Текст программы поиска в базе данных. Кодирование материала. Изготовление реляционной базы данных.

практическая работа [27,6 K], добавлен 11.10.2008

Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.

методичка [619,9 K], добавлен 17.11.2011

Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.

курсовая работа [1,6 M], добавлен 29.05.2013

Теоретические основы применения технологии ADO в среде Delphi. Основные понятия и определения теории баз данных. Компоненты Delphi для создания приложений, оперирующих с базами данных. Общий вид и основные особенности работы приложения «Аптека».

курсовая работа [1,4 M], добавлен 09.08.2012

Разработка программных продуктов на языке программирования Borland Delphi. Применяемые таблицы и связи между ними. Пользовательский интерфейс работы с базой данных. Алгоритм работы программы «Футбольные команды и игроки». Защита от ввода неверных данных.

курсовая работа [788,1 K], добавлен 22.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.

Основные термины и понятия среды Borland Delphi

Active – свойство типа Boolean, позволяющее определить активность визуального компонента.

AutoSize – свойство типа Boolean, управляет возможностью автоматического изменения размеров компонента по размерам его содержимого.

BDE – Borland Database Engine, процессор баз данных, обеспечивающий доступ к данным. Приложение через BDE передает запрос к базе данных, а обратно получает требуемые данные.

BDE Administrator – программа, которая позволяет настраивать параметры БД и параметры ОС, включает настройку параметров псевдонима БД, параметров драйвера и позволяет выполнить системные установки.

Bevel – компонент, бордюр или фаска. Представляет собой прямоугольные области, рамки и линии.

BlockRead – процедура чтения из нетипизированного файла.

BlockWrite – процедура записи в нетипизированный файл.

BorderIcons – свойство формы, отвечающее за наличие стандартных иконок в заголовке формы.

BorderStyle – свойство формы, отвечающее за вид формы.

Borland Delphi – среда визуального программирования, разработанная фирмой Borland и написанная на языке семейства Pascal.

Brush – свойство, отвечающее за узор и цвет закраски геометрических фигур.

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

CanSelect – свойство типа Boolean, позволяющее выделять строки в компонентах, содержащих элементы в виде списка строк.

Canvas – поверхность для рисования, холст. Такое свойство имеют многие визуальные компоненты.

Cascade– метод упорядочения дочерних окон каскадом.

Caption – текст заголовка элемента управления.


Circle – процедура прорисовки окружности.

ClientHeigth – высота клиентской области элемента управления в пикселях.

ClientWidth – ширина клиентской области элемента управления в пикселях.

CloseFile – процедура закрытия файла.

Color – свойство, определяющее цвет. Это может быть цвет элемента управления, цвет выводимого символа, цвет кисти и т.п.

ColorDialog – стандартное диалоговое окно Windows, позволяющее выбрать цвет.

ComboBox –элемент управления, комбинированный список. Состоит из списка типа ListBox и поля ввода редактируемого элемента.

Cursor – свойство, отвечающее за вид указателя мыши.

Data Pump – программа, с помощью которой можно выполнить перенос данных между таблицами БД.

Database – база данных.

Database Desktop – программа, предназначенная для создания и редактирования таблиц, визуальных запросов и SQL-запросов, а также для выполнения действий с псевдонимами БД.

DataModule – модуль данных – отдельный модуль для размещения невизуальных компонентов доступа в данным.

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

DBComboBox – компонент, позволяющий отображать содержимое таблицы БД в виде комбинированного списка.

DBGrid – компонент, позволяющий отображать содержимое таблицы БД в виде сетки.

DBListBox– компонент, позволяющий отображать содержимое таблицы БД в виде списка.

DBLookupComboBox – компонент, позволяющий отображать содержимое таблицы БД в виде комбинированного списка с возможностью дополнительно видеть информацию, связанную с текущей записью из другой таблицы.

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

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

Delete – процедура работы со строкой. Удаляет элементы из строки.

Draw – процедура вывода изображения на поверхность рисования.

Edit – компонент – однострочный редактор.

Ellipse – процедура прорисовки дуги эллипса.

Enabled – свойство типа Boolean, определяющее, реагирует ли компонент на события, связанные с мышью, клавиатурой и таймером.

Eof – функция признака конца файла.

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

Execute – метод, обеспечивающий весь жизненный цикл диалогового окна в модальном режиме.

exe-файл – исполняемый файл, приложение.

FloatToStr – функция перевода числа с плавающей точкой в строку.

Font – шрифт – задает один из шрифтов Windows.

Font.Size – свойство класса TFont, отвечающее за размер шрифта.

FormStyle – свойство формы, отвечающее за ее вид.

FROM – служебное слово из языка SQL.

Function – один из видов подпрограмм, используемых в языках семейства Pascal.

Heigth – свойство, отвечающее за высоту компонента.

Hint– свойство, задающее текст подсказки.

Image – компонент, предназначенный для размещения изображения.

Image.Picture – свойство компонента Image, определяющее изображение, размещаемое внутри компонента Image.

ImageList– невизуальный компонент, список графических образов (Image). Используется для эффективного управлением множеством пиктограмм или битовых карт.

Implementation – раздел реализации программной единицы языка Pascal – модуля (Unit).

InputBox – функция вызова одного из типовых диалогов Windows.

INSERT – служебное слово языка SQL.

Insert – процедура для работы со строкой. Осуществляет вставку подстроки в строку.

Interface – раздел интерфейса программной единицы языка Pascal – модуля (Unit).

INTO – служебное слово языка SQL.

Items – свойство списка строк типа TListBox, в котором хранится собственно список строк и к которым можно обратиться по индексу.

Label – компонент для выдачи на экран строки текста.

Left – свойство компонента, отвечающее за координаты его верхнего угла.

Lines– свойство многострочного редактора типа TMemo, в котором хранится собственно список строк и к которым можно обратиться по индексу.

LineTo – процедура прорисовки прямой линии.

MainMenu – компонент главного меню формы.

MasterFields – свойство подчиненной таблицы, отвечающее за список полей, связанных с главной таблицей.

MasterSource – свойство подчиненной таблицы, отвечающего за имя компонента типа TDataSourse, связанного с главной таблицей.

MediaPlayer – визуальный компонент, позволяющий манипулировать файлами и устройствами мультимедиа, поддерживать воспроизведение, запись и перемещение между отдельными фонограммами.

Memo – компонент, многострочный редактор.

MessageDlg – одно из типовых диалоговых окон Windows.

Method – процедуры и функции, включенные в описание класса.

MouseDown– событие, связанные с нажатием клавиши мыши.

MoveTo – процедура перемещения графического курсора.

Name – свойство, отвечающее за имя компонента (объекта).

ODBC– (Open Database Connectivity – совместимость открытых баз данных) применяется операционной системой для доступа к источникам данных, использующих язык структурированных запросов SQL для организации управления данными.

OnActivate – событие, возникающее при активизации компонента.

OnClick – событие, возникающее при клике мышкой над элементом.

OnClose – событие, возникающее непосредственно перед закрытием формы.

OnCloseQuery– событие, возникающее в ответ на попытку закрытия формы.

OnCreate – возникает один раз при создании формы.

OnEnter – событие, возникает, когда оконный элемент получает фокус.

OnExit – событие, возникает, когда оконный элемент теряет фокус.

OnHide– событие, возникает, когда оконный элемент становится невидимым.

OnKeyDown – событие, возникает, когда нажата клавиша.

OnKeyPress – событие, возникает, когда нажата клавиша, имеющая ASCII-код.

OnKeyUp – событие, возникает, когда отпущена клавиша.

OnMouseDown – событие, возникает, когда над элементом нажата клавиша мыши.

OnMouseMove – событие, возникает, когда над элементом отпущена клавиша мыши.

OnPaint – событие, возникает при необходимости перерисовки формы.

OnShow – событие, возникает при отображении формы на экране.

OnTimer– событие компонента Timer, возникает периодически по истечении интервала времени, определенного в свойстве Timer.Interval.

OpenDialog – стандартное диалоговое окно Windows, отвечающее за выбор открываемого файла.

ORDER BY – служебные слова языка SQL.

OutText – процедура выдачи текста на холст.

Panel – компонент, являющийся контейнером для других компонентов. Используется для размещения на нем различных управляющих элементов.

Pen – перо, используется в графической системе. Перо имеет цвет, стиль, толщину.

Picture – объект- контейнер для графических объектов. Графические изображения, загруженные в объект типа TPicture, определяет свойство Graphic.

PopupMenu – всплывающее меню, появляющееся при нажатии правой кнопки мыши и размещении курсора в области компонента.

Position – свойство формы, определяющее размещение и размер формы на экране.

Procedure – один из видов подпрограмм, использующихся в языках семейства Pascal.

ProgressBar – компонент, индикатор хода работы.

Property– свойство. Поле объекта, доступ к которому возможен только через методы этого объекта.

QRExpr – компонент отчета, значение которого формируется на основе выражений, использующих значения полей записей.

QRBand – компонент отчета, полоса отчета.

QRLabel – компонент отчета, надпись, содержащая текст.

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

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

QuickRep – компонент отчета, главный элемент отчета. Представляет собой основу, на которой размещаются другие элементы отчета.

RadioGroup – компонент, представляющий собой готовую группу радио-кнопок.

Randomize– процедура инициализации датчика случайных чисел.

ReadOnly – свойство типа Boolean, разрешающее или запрещающее редактирование текста в редакторах.

Record– служебное слово языка Pascal, использующееся при объявлении типа данных запись. Запись – фиксированный набор данных разных типов.

Rectangle – процедура прорисовки прямоугольника.

Reset – процедура открытия файла для чтения. Для типизированных файлов возможна и запись.

Rewrite – процедура открытия файла для записи. Содержание предыдущего файла уничтожается.

SaveToFile – метод сохранения списка строк TStrings в файле.

SELECT – служебное слово языка SQL.

Sender – один из параметров обработчика события, через который указывается объект – источник события.

SET – служебное слово языка SQL.

Shape – компонент для отображения геометрической фигуры.

Size – свойство, определяющее размер шрифта (Font).

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

SQL – Structured Query Language – язык структурированных запросов к БД.

SQL Builder – программа, упрощающая создание SQL-запросов.


SQL Explorer – программа, позволяющая просматривать и редактировать БД.

SQL-запрос – последовательность команд на языке SQL.

Stretch – свойство типа Boolean. Управляет возможностью автоматического изменения размеров изображения так, чтобы они равнялись размерам компонента, в котором оно содержится.

StringGrid – компонент – таблица строк. Используется для обработки строковых данных.

Table – компонент, обеспечивающий навигационный способ доступа к данным БД.

TDataSet – класс, потомками которого являются классы TTable и TQuery, позволяющий не только выводить данные таблицы БД на экран, но и изменять их.

Text – компонент – однострочный редактор текста.

Timer – невизуальный компонент. Предназначен для инициализации события OnTimer через определенные промежутки времени.

Tile – метод упорядочения дочерних окон мозаикой.

TObject – базовый, корневой класс объектно-ориентированной модели семейства языков Pascal.

TrackBar – визуальный компонент – ползунок или шкала.

Type – служебное слово языка Pascal, с которого начинается подраздел описания типов пользователя в разделе описания.

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

UPDATE– служебное слово языка SQL.

Uses – служебное слово языка Pascal, за которым следует список подключаемых программных модулей.

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

Visible – свойство компонента типа Boolean, отвечающее за видимость компонента.

WHERE – служебное слово языка SQL.

Width – свойство, определяющее ширину компонента.

База данных (БД) – способ хранения информации, обеспечивающий удобный и быстрый доступ к данным.

База данных локальная – БД, расположенная на том же компьютере, что и работающее с ней приложение.

База данных реляционная – БД, состоящая из взаимосвязанных таблиц.

База данных удаленная – БД размещается на компьютере-сервере, а приложение, работающее с ней, находится на компьютере пользователя.

Библиотека компонентов – Visual Component Library (VCL), содержит большое количество классов, предназначенных для быстрой разработки приложений. Классы VCL образуют дерево классов.

Бизнес-правила – представляют собой механизмы управления БД и предназначены для поддержки БД в целостном состоянии.

Визуальные элементы управления – потомки класса TControl. Все элементы, которые видны или могут быть видны в клиентской области формы.

Вызов формы – если форма инициализирована, то вызов формы осуществляется методом Show или ShowModal. Если форма не инициализирована, то предварительно ее надо инициализировать используя метод Create.

Вызов формы модальный – модальная форма вызывается методом ShowModal.

Выход за границы массива – ошибка времени исполнения. Заключается в выходе значения индекса за границы диапазона. Контроль за такими ошибками может быть отключен.

Главный – подчиненный – отношение подчиненности, определяющее связь между таблицами в реляционных БД, при которой одна таблица является главной, а вторая подчиненной. Существуют следующие виды связи: один-к-одному, один-ко-многим, много-к-одному, много-ко-многим.

Графические компоненты – визуальные компоненты, не имеющие возможности получать фокус ввода.

Группировка компонентов – организуется с использованием компонента Panel.

Движение мыши – событие, связанное с обработчиком OnMouseMove, возникающее при движении мыши над компонентом.

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

Диалог стандартный – диалоги, реализованные в Windows и представляющие диалоги выбора файлов для чтения и записи, выбор цвета, шрифта, настройки принтера и параметров печати.

Доступ навигационный – заключается в обработке каждой отдельной записи набора данных. Каждый набор данных имеет невидимый указатель текущей записи, который определяет, с какой записью могут выполняться операции редактирования или удаления. Реализуется с помощью компонентов Table или Query.

Доступ реляционный – основан на обработке группы записей. Используются SQL-запросы. Ориентирован на работу с удаленными БД. Реализуется с помощью компонента Query.

Завершение программы – для завершения программы (приложения) вызывается метод Close главной формы. При этом происходит последовательность событий: OnCloseQuery, OnClose, OnDestroy.

Заголовок – см. Caption.

Заготовка формы – одно из окон среды разработки Delphi. Окно формы.

Запись – тип языка Pascal, объединяющий несколько данных разных типов. См. Record.

Запись – строка таблицы БД.

Запись текущая – запись таблицы БД, на которую указывает указатель текущей записи.

Запрос – последовательность команд на языке SQL.

Запрос Query – свойство компонента Query, в котором записывается SQL-запрос.

Запрос реляционный – см. SQL-запрос.

Защищенные – свойства и методы из раздела protected объявления класса.

Имя компонента – имя, написанное по правилам языка Pascal, как правило, это значение свойства Name компонента.

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

Инкапсуляция – одна из основ объектно-ориентированного программирования. Состоит в объединении и сокрытии данных и методов работы с ними.

Инспектор объекта – одно из окон среды разработки Delphi. Представляет собой окно с блокнотом из двух страниц. На одной из них опубликованы свойства объекта, на другой – обработчики событий объекта.

Интерфейс – см. Interface.

Исполняемый файл – см. Exe-файл.

Источник данных – промежуточное звено между набором данных и визуальными компонентами, с помощью которых пользователь управляет набором данных. Компонент DataSourse.

Кисть – см. Brush.

Класс – специальный тип, который содержит поля, методы и свойства.

Класс базовый – см. класс TObject. Все классы, используемые в языке Pascal, есть потомки этого класса.

Класс формы – класс TForm.

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

Кнопка – см. Button.

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

Компиляция– процесс преобразования исходного текста программы в двоичный исполняемый файл.

Компонент – экземпляр потомков метода TComponent. Компонент можно поместить на форму, этим он отличается от других объектов.

Компонент Query – см. Query.

Компонент визуальный – компонент, который можно отобразить на форме.

Компонент невизуальный – компонент, который не отображается на форме. Примером может служить компонент Timer.

Компонент графический – компонент, который можно отобразить на форме, но который не может получить фокуса ввода, то есть не может стать активным.

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

Конструктор – метод, предназначенный для создания объектов. В Delphi это метод Create.

Контейнер – специальный компонент, предназначенный для объединения элементов.

Константа – данные, не изменяющиеся в ходе выполнения программы.

Курсор – указатель на текущую запись таблицы БД.

Массив– фиксированный набор данных одного типа, объединенных одним именем.

Медиапроигрыватель – см. MediaPlayer.

Меню – см. MainMenu.

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

Метод защищенный – метод, объявленный в разделе protected описания класса.

Метод опубликованный – метод, объявленный в разделе public описания класса.

Метод чтения – метод, с помощью которого читается значение поля, связанного со свойством.

Модель базы данных – модель данных. Существуют локальная, сетевая, реляционная модели данных.

Модель объектно-ориентированная – одна из модель базы данных.

Модель реляционная – модель данных, представляющая собой набор связанных таблиц.

Модель сетевая – модель данных, в которой БД располагается на сервере, а клиентские приложения – на клиентских компьютерах.

Модуль – см. Unit.

Модуль данных – см. DataModule.

Мультимедиа-проигрыватель – см. MediaPlayer.

Нажатие клавиши – события, связанные с обработчиками OnKeyDown, OnKeyPress, OnKeyUp.

Нажатие мыши– события, связанные с обработчиками OnMouseDown, OnMousePress, OnMouseyUp, OnMouseMove.

Наследование – одна из основ объектно-ориентированного программирования. Состоит в наследовании методов, свойств и полей классов-предков.

Настройка цвета – производится в стандартном диалоговом окне ColorDialog.

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

Обработчики событий – специальные методы, связанные с событиями.

Объект – экземпляр класса. Для инициализации объекта в Delphi используется метод Create.

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

Окно активное – окно, имеющее в данный момент фокус ввода. Его свойство Active=True.

Окно главное –окно, которое первым инициируется и последним закрывается в ходе выполнения приложения.

Окно редактора кода – одно из окон среды разработки Delphi. Представляет собой многостраничный текстовый редактор.

Операция – некоторые действия, в результате которых происходит преобразование данных.

Отладка – многошаговый процесс написания правильно работающей программы.

Палитра компонентов – одно из окон среды разработки Delphi. Представляет собой многостраничный блокнот с наборами компонентов, сгруппированных по определенной тематике.

Переменная глобальная – переменная, объявленная или в основной программе, или в разделе интерфейса модуля.

Переменная защищенная – переменная, объявленная в разделе protected описания класса.

Переменная локальная – переменная, объявленная или внутри подпрограммы, или в разделе реализации модуля.

Переменная опубликованная – переменная, объявленная в разделе published описания класса.

Поле – элемент типа запись (record) языка Pascal.

Поле – столбец таблицы базы данных.

Поле индексированное – поле таблицы БД, по которому построен индекс (см.).

Поле ключевое – поле таблицы БД, по которому построен ключ (см.).

Поле текстовое – поле БД, предназначенное для хранения текстов.


Полиморфизм – один из основных принципов объектно-ориентированного программирования. Заключается в том, что методы различных классов могут иметь одинаковые имена, но различное содержание. В результате предок и потомок ведут себя по-разному при обращении к одноименным методам различных объектов.

Приложение– в Windows так называется выполняемая программа.

Приложение многооконное – приложение, в котором используется несколько форм (окон). Различаются SDI-приложения и MDI-приложения. Сама Delphi написана как SDI-приложение.

Процедура доступная – процедура, являющаяся методом класса и объявленная в разделе public объявления класса.

Процедура защищенная– процедура, являющаяся методом класса и объявленная в разделе protected объявления класса.

Раздел интерфейса – см. Interface.

Раздел реализации – см. Implementation.

Размер клиентской области – размер внутренней область формы без учета бордюра и заголовка.

Реакция на события – см. Обработчики событий.

Редактор кода – см. Окно редактора кода.

Редактор полей – специальный редактор для создания статических полей таблицы.

Рисование – отображение графических фигур на холсте. См. Canvas.

Свойства – поля объекта, доступ к которым возможен только через методы класса.

Свойства доступные – свойства, объявленные в разделе public объявления класса.

Связывание таблиц – см. Главный – подчиненный.

Сервер – компьютер, на котором развернута БД.

События – см. Event.

Способ навигационный – см. Доступ навигационный.

Способ реляционный – см. Доступ реляционный.

Столбец – см. Поле таблицы БД.

Строка – см. Запись таблицы БД.

Таблица – способ хранения данных в БД.

Только для чтения – см. ReadOnly.

Файл исполняемый – двоичный Exe-файл.

Файл модуля – имя текстового файла с исходным текстом программного модуля должно совпадать с именем модуля и иметь расширение *.pas. По нему после компиляции строится двоичный файл модуля, имя которого должно совпадать с именем модуля и иметь расширение *.dcu.

Файл модуля формы – для каждой формы организуется свой программный модуль, в котором объявляется класс и экземпляр класса – форма.

Файл типизированный – файл, элементами которого являются данные одного типа.

Файл текстовый – файл, элементами которого являются строки переменной длины.

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

Форма модальная – форма, не отдающая фокус ввода до тех пор, пока ее не закроют.

Холст – см. Canvas.

Ширина – см. Width.

Экземпляр класса см. Объект.

Элемент оконный – см. Компонент оконный.

Элемент визуальные – см. Компонент визуальный.

Язык структурированных запросов – язык SQL (Structured Query Language).

Дата добавления: 2015-07-26 ; просмотров: 25 ; Нарушение авторских прав

Консольное приложение в Turbo Delphi

Читайте также:
  1. Borland Delphi 7
  2. Cent; Основные законы над множествами
  3. Delphi XE5 Professional
  4. I. Основные признаки и систематика водорослей.
  5. I. Основные принципы метода электронной микроскопии
  6. I. ОСНОВНЫЕ РЕЗУЛЬТАТЫ БЮДЖЕТНОЙ ПОЛИТИКИ В 2010 ГОДУ И В НАЧАЛЕ 2011 ГОДА
  7. I. Основные термины курса
  8. I.2. Стадия создания и основные сведения о проектировании
  9. II. Основные документы операции финансового лизинга
  10. II. ОСНОВНЫЕ ЗАДАЧИ КУРСА ФИЗИКИ В ПОДГОТОВКЕ ИНЖЕНЕРА
10.09.2013, 19:56

Delphi консольное приложение
Условие задачи прописаны к фале «Условие» .Уже имеется часть работы,прописаны классы, выполнена.

Консольное приложение в среде Delphi
Здравствуйте! При реализации консольного приложения в среде Delphi возник следующий вопрос: -.

Не могу закрыть консольное приложение из Delphi
Запускаю cmd.exe winexec(Pchar(‘cmd.exe’),sw_Show); Пытаюсь его закрыть, но ничего не.

Как создать консольное приложение в Delphi 7?
Добрый день!Подскажите в Delphi 7 есть просто консольное приложение без кнопок всяких форм итд.

Написать консольное приложение в Delphi по блок схеме
Ругается на else, что делать?Program algoritm; Uses crt; Var x,y: integer; begin clrscr;.

Расширение набора стандартных функций и классов borland delphi

Иерархия компонентов Delphi 7

Данный класс лежит в основе всей иерархии классов Delphi 7. Он обладает самыми общими методами, присущими любому объекту Паскаля. Класс TObject описывает основные принципы поведения объектов во время работы программы (создание, уничтожение, обработка событий и так далее).

В практической работе необходимы представленные ниже методы класса TObject.

class function ClassName: ShortString; Возвращает название типа объекта (например, Tlabel)

class function ClassNarneIs(const Name: string); Boolean;

Возвращает True, если обьект относится к указанному типу

constructor Create; Конструктор. Выделение памяти для объекта

estructor Destroy; Деструктор. Использовать напрямую не рекомендуется

procedure Free; Удаляет объект и освобождает занятую им память

Класс TPersistent (наследник TObject)

На уровне этого класса реализованы основные методы копирования содержимого объектов.

procedure Assign (Source: TPersistent); Копирование содержимого объекта-параметра е

текущий объект . Например : Destignation. Assign (Sou rce);

procedure AssignTo(Dest: TPersistent); Копирование содержимого текущего объекта в объект,

заданный а качестве параметра

function GetOwner: TPersistent; Возвращает хозяина объекта

Класс TComponent (наследник TPersistent)

Класс TComponent является основным родительским классом для всех классов, описывающих компоненты Delphi 7.

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

Delphi 7 (табл. 2.11), и некоторые полезные методы (табл. 2.12)

ComponentCount Число объектов, подчиненных данному

Componentlndex Номер компонента в свойстве Components

Components Список объектов, подчиненных данному

ComponentState Текущее состояние компонента

ComponentStyle Стиль компонента

Name Название компонента в программе

Owner Хозяин компонента

Tag Вспомогательное свойство, хранящее число типа Integer, которое

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

function FindCornponent(const Aname: string): TComponent;

Поиск подчиненного объекта, подходящего по названию (параметр AName)

function GetParentComponent: TComponent; Определение собственника текущего объекта

Procedure InsertCornponent(Acomponent: TComponent);

Добавление объекта в конец списка Components

Procedure RemoveComponent(AComponent: TComponent);

Удаление объекта из списка Components

Класс TControl, наследник TComponent, служит основным классом для всех визуальных

элементов управления. Если такой элемент управления является стандартным элементом Windows, то он базируется на еще одном промежуточном классе TWinControl (наследнике класса TControl.).

Стандартные классы системы Delphi 7

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

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

Для решения этой проблемы в системе Delphi 7 найден простой выход. В ней создан

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

Список строк (класс TStrings, описанный в модуле Classes) полностью соответствует

своему названию и предназначен для:

О хранения строк;

О обращения к списку строк как к массиву и получения строки по ее номеру

(индексация начинается с нуля);

О добавления или удаления строк в конкретные места списка.

Clear Очистка списка

Equals Сравнение списков

Exchenge Перестановка местами

IndexOf поиск вхождения строки

Savetofile сохранить список вфайле

Loadfromfile чтение списка из файла

Компонент Текстовая область (ТМето)

Обойтись простым текстовым полем удается не всегда. Если пользователь должен ввести большой объем информации (например, полный почтовый адрес или произвольный комментарий), ему может понадобиться несколько строк текста. В таком случае следует использовать компонент ТМето.

При вводе текста для перехода на новую строку (к новому абзацу) обычно используется клавиша ENTER. Однако в диалоговых окнах Windows эта клавиша часто применяется для завершения ввода. Способ использования клавиши ENTER определяется значением свойства WantReturns. Если оно имеет значение True, то клавиша ENTER позволяет переходить к новой строке внутри текстовой области, в противном случае она служит для завершения ввода и перехода к следующему элементу

управления, а для перехода к новой строке применяется комбинация клавиш CTRL+ENTER.

Главное свойство данного компонента — Lines (Строки), имеющее тип TStrings. В нем хранится список строк, введенных пользователем. Эти строки можно обрабатывать всеми методами, доступными в классе TStrings, например сохранять в файле:

Memol.Lines. SaveToFilef ‘C:\Merrio.TXT1 ) ;

Наличие у текстовой области полос прокрутки задается в свойстве ScrollBars.

Selstart первый выделенный символ

Sellength число выделенных символоа


Seltext выделенный текст

Selectall выделить весь текст

Clearselection удалить выделение

Clear очистить текстовое поле

Undo отмена последнего изменения

Clearundo очистить букфер хранящий историю изменений

Copytoclipboard копировать в буфер обмена

Cuttoclipboard вырезать текста

Pastefromclipboard вставка текста из буфера

Компонент Флажок (TCheckBox)

Данный компонент используется для фиксации включенного или выключенного состояния (одного из двух).

Главное св-во Checked true если включен false сброшен

Определить текущее состояние или задать новое из числа доступных можно, проверив или изменив свойство State . Чтобы реагировать на изменение состояния флажка, надо создать обработчик события OnCLkk(При щелчке).

procedure TMyForm.CheckBoxlClickfSender: TObject);

case CheckBoxl.State of

cbUnchecked: Labell-Caption := ‘ выключено ‘;

cbGrayed : Labell.Caption := ‘ затемнено ‘;

cbChecked : Labell.Caption := ‘ включено ‘;

Компонент Переключатель (TRadioButton)

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

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

Свойство Alignment определяет положение подписи справа или слева от переключателя,

а свойство Checked — состояние объекта (True, если переключатель включен).

Если требуется отслеживать состояние переключателей динамически, надо создать

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

procedure TMyForm.RadioButtonlClicklSender: TObject];

then Labell.Caption := ‘ Включен первый 1

procedure TMyForm.RadioButton2Click(Sender: TObject);

then Labell.Caption := ‘ Включен второй ‘

Компонент Группа переключателей (TRadioGroup)

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

вании компонента TRadioGroup, который объединяет свойства и методы, обеспечивающие поддержку работы группы переключателей.

Items названия переключателей

Columns число столбцов

Свойство Itemlndex (исходное значение -1) содержит номер выделенного переключателя (число -1 показывает, что ни один переключатель не выбран). Значение этого свойства изменяется автоматически, когда пользователь выбирает один из переключателей группы. Разрешается менять его и программно при занесении нового значения в свойство Itemlndex изменится и текущий выбранный переключатель на форме.

Динамически реагировать на выбор нового переключателя в группе можно с помощью обработчика события OnClick. Например, чтобы отображать с помощью надписи Labell название текущего переключателя, надо обратиться к свойству Items (список строк) и выделить тот элемент, номер которого записан в свойстве Itemlndex. Предварительно следует проверить, имеется ли вообще выделенный переключатель (не равно ли значение свойства Itemlndex -1), или выбрать один из переключателей на этапе проектирования (например, присвоив свойству Itemlndex значение 0).

procedure TMyForm.RadioGrouplClickfSender: TObject];

if RadioGroupl.Itemlndex > -1 then

Компонент Список (TListBox)

Компонент Список (TListBox) очень часто применяется в программах для Windows. Он позволяет выбрать одну или несколько строк в списке.

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

Columns число столбцов

Style тип списка

Multiselect Выбор нескольких элементов списка

Selected [ index ] если true элемент выделен

Itemindex Номер единственного выделенного элемента

Add добовить элемент

DeleteString( index )удалить элемент с номером index

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

Его удобнее всего использовать в обработчике щелчка (отпускания) кнопки мыши для объекта ListBox.

procedure TMyForm.ListBoxlMouseUp (Sender: TObject;

Shift: TShiftState; X, Y: Integer);

var Point: TPoint;

Point.X := X; Point.Y := Y;

Index := ListBoxl .ItemAtPos (Point, True) ;

В переменную Index запишется номер элемента, на область которого внутри списка

пришелся щелчок мыши.

Компонент Поле со списком (TComboBox)

Этот компонент представляет собой вариант списка с присоединенным дополнительным полем, в котором отображается выбранный элемент списка.

Это же поле может использоваться для ввода новых элементов или для быстрого поиска элемента по начальным символам. Если на экране отображается только присоединенное поле (раскрывающийся список), то для раскрытия списка можно использовать клавиатурную комбинацию ALT+BHH3.

Style тип поля со списком

Dropdouncount Мах число отображаемых элементов

Itemindex Текущая выбранная строка

Стандартные диалоговые окна Windows

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

ВНИМАНИЕ Эти компоненты не предназначены для выполнения конкретных действий: загрузки фойла, печати, изменения текущего шрифта и прочих. Они применяются только для получения от пользователя желаемых значений настроек, например ввода полного имени файла вместе с путем поиска, указания гарнитуры шрифта, задания числа печатаемых страниц.

Все эти компоненты являются наследниками класса TCommon Dialog. Самый важный

его метод — это функция

function Execute: Boolean;

Она выполняет открытие соответствующего окна и возвращает значение True, если пользователь щелкнул на кнопке ОК. Реальные поля ввода и заголовки определяются в конкретных компонентах. Когда диалоговое окно открывается в первый раз, возникает событие OnShow, а при закрытии окна — событие OnC l ose.

Компонент Окно выбора файла (TOpenDialog)

Компонент предназначен для выбора файла с целью последующего открытия. Свойства и события класса TOpenOialog приведены в табл. 4.27 и 4.28.

Таблица 4.27. Свойства класса

DefaultExt Расширение имени, используемое по умолчанию. Добавляется в конец выбранного

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

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

Files Список выбранных имен файлов. В свойстве Options должен быть включен флажок ofAllowMultiSelect

Filter Набор масок, в соответствии с которыми отбираются имена файлов для отображения в диалоговом окне. Каждая маска состоит из двух частей: названия и шаблона, — разделенных символом . Одному названию могут соответствовать несколько шаблонов. Маски отделяются друг от друга символом

Fi l terlndex Номер текущей маски. Нумерация начинается с 1

HistoryList Список ранее выбранных файлов (тип TStrings)

InitialDir Текущий каталог, содержимое которого отображается при первом открытии диалогового окна

Options Набор флажков, определяющих работу окна выбора файлов

Title Заголовок диалогового окна

В следующем примере при щелчке на кнопке отображается диалоговое окно выбора имени файла (объект OpenDiabgl), которое имеет заголовок Выбор нужного файла, а в списке отображаются все файлы, имеющие расширение .PAS. Это обеспечивается присвоением свойству Filterlndex значения 2.

procedure TForml .ButtonlClick(Sender: TObject);

OpenDialogl.Filter := ‘ Все файлы (* . * ) | *.* | Файлы Паскаля (*.pas)|*.PAS’;

OpenDialogl.Title := ‘ Выбор нужного файла ’;

if OpenDialogl-Execute then

AssignFile(F, OpenDialogl.FileName); // работа с файлом F

Компонент Окно сохранения файла (TSaveDialog)

Этот компонент практически ничем не отличается от компонента TOpenDialog за исключением некоторых настроек, специфичных для процесса сохранения файла.

Компоненты Окно открытия рисунка (TOpenPictureDialog)

и Окно сохранения рисунка (TSavePictureDialog)

Эти компоненты являются, соответственно, наследниками класса TOpenDialog и класса TSaveDialog. Диалоговые окна содержат дополнительную область для быстрого просмотра содержимого выбранного графического файла.

Компонент Окно выбора шрифта

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

Таблица 4.29. Свойства класса TFontDialog

Device Устройство, для которого отображается список доступных шрифтов. Возможные

значения — fdScreen (экран), fdPrinter (принтер) и fdBoth (как экран, так и принтер)

Font Выбранный пользователем шрифт (тип TFont)

MaxFontSize Максимальный размер шрифта, ограничивающий содержимое показываемого

MinFontSize Минимальный размер шрифта, ограничивающий содержимое показываемого

Options Дополнительные характеристики внешнего вида диалогового окна

Если, например, на форме имеется надпись Labell, то при щелчке на кнопке Buttonl следующий обработчик вызовет диалоговое окно выбора шрифта. После того как пользователь сделает выбор, шрифт, которым сделана надпись, изменится.

procedure TForml.ButtonlClick(Sender: TObject);

if FontDialogl.Execute then

Компонент Окно выбора цвета (TColorDialog)

С помощью данного компонента вызывается стандартное диалоговое окно выбора цвета (рис. 4.1).

Свойство Color (тип ТСоЬг) содержит выбранный пользователем цвет, а свойство CustomColors (тип TStnngs) хранит в текстовом формате описание дополнительных пользовательских цветов. Цвет в этом формате задается шестью символами, определяющими в шестнадцатеричном виде значение цвета в соответствии с требованием цветовой системы RGB. Каждый байт задается двумя символами, например FFFFFF или 08ЕЕ08. Имеется такж е свойство Options, присутствующее у всех подобных компонентов и позволяющее выполнять тонкие специфические настройки работы окна.

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

Илон Маск рекомендует:  Ссылка сработает при наведении мышки
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL