Delphi 6 -программирование
Эволюция технических средств персональных компьютеров привела к повсеместному вытеснению старой “доброй” ОС MS-DOS значительно более мощными системами Windows, программирование для которых существенно сложнее, чем программирование для MS-DOS. Разработчики систем программирования, и прежде всего такие корпорации, как Microsoft и Borland, не замедлили выпустить соответствующие средства: уже в 1991 году, т. е. сразу после появления Windows 3.1, Borland выпускает Turbo Pascal for Windows, а в 1992 - усовершенствованную версию этой системы программирования - Borland Pascal with Objects 7.0. Эти первые специализированные инструменты требовали основательного знания Windows и были сложны в освоении. Но вот в 1993 году Microsoft выпустила первую визуальную среду программирования Visual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В ответ на это Borland в 1995 году выпустила первую версию Delphi, а затем, с интервалом в 1 год, - еще 4 версии: 2, 3, 4 и 5. Наконец, в середине 2001 г. выпускается версия б, которая и положена в основу этой книги. Замечу, что материал книги можно с некоторыми (часто несущественными) ограничениями использовать и для изучения более ранних версий.Не секрет, что лучшим языком для изучения и освоения программирования является Паскаль, а лучшей в мире системой программирования для MS-DOS - Turbo Pascal. Delphi продолжила серию Паскаль-ориентированных средств программирования и, по моему глубокому убеждению, является наиболее удобным инструментом для Windows-программирования.
Введение
Основные отличия различных версий DELPHI
За сравнительно небольшой срок корпорация Borland выпустила 6 основных версий и несколько модификаций Delphi. В этой вводной главе мы рассмотрим основные черты существующих версий Delphi, сделав главный упор на более подробном анализе последней, 6-й версии, т. к. именно на этой версии базируется рассматриваемый в книге материал. Назначение главы - дать вам представление о той версии, с которой вы работаете, если, разумеется, это не 6-я версия Delphi. С другой стороны, она - удобное место утолить естественное любопытство тех из вас, кто уже имеет опыт работы с одной из ранних версий и хочет узнать особенности новейшей.
Знакомство со средой DELPHI
Среда Delphi - это сложный механизм, обеспечивающий высокоэффективную работу программиста. Визуально она реализуется несколькими одновременно раскрытыми на экране окнами. Окна могут перемещаться по экрану, частично или полностью перекрывая друг друга, что обычно вызывает у пользователя, привыкшего к относительной “строгости” среды текстового процессора Word или табличного процессора Excel, ощущение некоторого дискомфорта. После приобретения опыта работы с Delphi это ощущение пройдет, и вы научитесь быстро отыскивать нужное окно, чтобы изменить те или иные функциональные свойства создаваемой вами программы, ибо каждое окно несет в себе некоторую функциональность, т. е. предназначено для решения определенных задач.
Основы визуального программирования
Программирование в Delphi строится на тесном взаимодействии двух процессов: процесса конструирования визуального проявления программы (т. е. ее Windows-окна) и процесса написания кода, придающего элементам этого окна и программе в целом необходимую функциональность. Для написания кода используется окно кода, для конструирования программы - остальные окна Delphi, и прежде всего - окно формы.
Знакомство с компонентами
Как мы уже выяснили, компоненты представляют собой элементы, из которых конструируется видимое изображение, создаваемое работающей программой. Замечу, что существует значительное количество компонентов, которые не создают видимого изображения, но которые тем не менее играют важную роль в тех или иных случаях. Правильнее думать о компонентах как о заранее приготовленных для вас фрагментах программы, которые можно вставлять, если в этом есть необходимость, в разрабатываемую программу. В этом разделе приводится начальный обзор компонентов, который даст вам самое общее представление о богатстве возможностей Delphi.
Введение в Object Pascal
В этой и последующих главах второй части мы будем изучать основной инструмент Delphi - язык Object Pascal. Назначение этой главы - предоставить вам возможность неформального знакомства с основными свойствами языка без точного описания и углубленного изучения его конструкций.
Элементы языка
Идентификаторы в Object Pascal - это имена констант, переменных, меток, типов, объектов, классов, свойств, процедур, функций, модулей, программ и полей в записях. Идентификаторы могут иметь произвольную длину. Идентификатор всегда начинается буквой, за которой могут следовать буквы и цифры. Напомню, что буквой считается также символ подчеркивания, поэтому идентификатор может начинаться этим символом и даже состоять только из одного или нескольких символов подчеркивания. Пробелы и специальные символы алфавита не могут входить в идентификатор.
Типы данных
Любые данные, т. е. константы, переменные, свойства, значения функций или выражения, в Object Pascal характеризуются своими типами. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК.
Процедуры и функции
Процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции). Отличие функции от процедуры заключается в том, что результатом исполнения операторов, образующих тело функции, всегда является некоторое значение, поэтому обращение к функции можно использовать в соответствующих выражениях наряду с переменными и константами. Условимся далее называть процедуру или функцию общим именем “подпрограмма”, если только для излагаемого материала указанное отличие не имеет значения.
Классы и интерфейсы
Классами в Object Pascal называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. Сразу же уточню, что в предшественнике Object Pascal - Turbo Pascal объектами называются типы, имеющие много общего с классами Object Pascal. Однако существенные усовершенствования, внесенные в объектную модель Object Pascal, заставили разработчиков языка ввести для обозначения объектов специальный термин - класс, заимствованный, кстати, из Си++. Для совместимости с ранее разработанными программами системы Turbo Pascal with Objects 7.0 в Object Pascal сохранен тип-объект object, поддерживающий “старую” объектную модель.
Варианты
Вариант (в Delphi 1 он отсутствует) - это тип variant, разработанный специально для тех случаев, когда на этапе компиляции программист не может сказать, какого типа данные будут использоваться в выражении или как параметры вызова подпрограмм. Переменная-вариант занимает в памяти дополнительные 2 байта, в которые помещается информация о действительном типе переменной. Эта информация позволяет компилятору создать код, который будет осуществлять необходимое преобразование типов на этапе прогона программы.
Файлы
Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Object Pascal, кроме файлов. Иными словами, нельзя создать “файл файлов”. В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.
Модули
Стандартный Паскаль не предусматривает механизмов раздельной компиляции частей программы с последующей их сборкой перед выполнением. Более того, последовательное проведение в жизнь принципа обязательного описания любого объекта перед его использованием делает фактически невозможной разработку разнообразных библиотек прикладных программ. Точнее, такие библиотеки в рамках стандартного Паскаля могут существовать только в виде исходных текстов, и программист должен сам включать в программу подчас весьма обширные тексты различных поддерживающих процедур, таких как процедуры матричной алгебры, численного интегрирования, математической статистики и т. п.
Динамические подключаемые библиотеки
DLL реализуются в виде исполняемых модулей, содержащих готовые к работе процедуры, функции и/или ресурсы. С точки зрения программиста, есть много общего между DLL и обычными для Object Pascal модулями, т. к. в конечном счете и библиотеки, и модули поставляют подпрограммы, избавляющие программиста от написания собственного кода. Но есть и принципиальные отличия. Главным из них является то, что DLL не в состоянии поставлять в программу переменные, константы и типы, ведь создатели DLL могут использовать не типизированные языки программирования, например, язык ассемблера. В результате DLL не могут экспортировать в программу столь необходимые сегодня программисту классы - для этого используются пакеты.
Особенности разработки модулей-потоков
Современные операционные системы Windows 32 обеспечивают не только многозадачность, т. е. возможность параллельной работы нескольких программ, но и многопоточность, когда в рамках одной программы организуется несколько параллельно выполняемых фрагментов (потоков), каждый из которых конкурирует с другими потоками за наиболее важный ресурс - время центрального процессора. В многопоточном режиме время ЦП выделяется для каждого процесса небольшими порциями (квантами), по истечении этого времени управление передается другому потоку и т. д. до тех пор, пока потоки не закончат свою работу. В любой работающей программе организуется как минимум один поток для команд программы.
Типизированные константы и инициированные переменные
Во всех версиях Delphi, кроме версии 6, типизированным константам можно присваивать другие значения в ходе выполнения программы, поэтому фактически они представляют собой переменные с начальными значениями, т. е. являются инициированными переменными. Типизированная константа приобретает указанное в ее объявлении значение, т. е. инициируется, лишь один раз: к моменту начала работы программы. При повторном входе в блок (процедуру или функцию), в котором она объявлена, инициация типизированной константы не производится, и она сохраняет то значение, которое имела к моменту выхода из блока.
Классы общего назначения
Класс Exception является прямым потомком базового класса тоь-ject. Вместе со своими потомками он предназначен для обработки исключительных ситуаций (исключений), возникающих при некорректных действиях программы: например, в случае деления на ноль, при попытке открыть несуществующий файл, при выходе за пределы выделенной области динамической памяти и т. п. В этом разделе рассматриваются основные свойства исключений и их использование для повышения надежности программ.
Общие свойства компонентов
Компонентами в Delphi называются потомки класса TComponent. В этой главе описываются общие свойства, методы и события компонентов. В остальных разделах книги при описании конкретного компонента эти свойства уже не упоминаются. Следует учесть, что все они относятся в основном к классам-родоначальникам TObject, TPersistent, TComponent и TControl.
Использование компонентов общего назначения
В этой главе рассматривается работа с некоторыми наиболее часто используемыми компонентами библиотеки визуальных компонентов Delphi (VCL - Visual Component Library). Компоненты описываются так, как они по умолчанию (в момент поставки) сгруппированы на страницах палитры компонентов. Это сделано сознательно, чтобы облегчить поиск в книге нужного компонента, т. к. эта глава в значительной степени основана на справочном материале Delphi.
Форма
Форма является основным строительным блоком в Delphi. Любая программа имеет как минимум одну связанную с ней форму, которая называется главной, - эта форма появляется на экране в момент старта программы. Однако программа может иметь сколько угодно форм, каждая из которых решает какую-то локальную задачу и появляется на экране по мере надобности. В этом разделе мы познакомимся с назначением и способами использования различных форм и изучим их свойства и методы.
Глобальные объекты и настройка программ
С любой запущенной программой автоматически связываются четыре глобальных объекта: Application (программа), screen (экран), Printer (принтер) и Clipboard (буфер межпрограммного обмена). В этой главе рассматриваются свойства и методы этих объектов. Отдельный раздел посвящен индивидуальной настройке программ.
Создание встроенной справочной системы
В этом разделе описан процесс создания Help-службы и настройка программы на работу с ней. Для реализации процесса вам понадобятся как минимум две утилиты: текстовый RTF-редактор и компилятор Help-файлов. В качестве текстового редактора обычно используется Microsoft Word (далее просто Word), поддерживающий расширенный текстовый формат RTF (стандартный для Windows 32 текстовый редактор WordPad также поддерживает формат RTF, но в нем нет удобных средств вставки специальных управляющих символов). В ранних версиях Delphi в качестве компилятора Help-файлов поставлялся стандартный компилятор hcsi.exe. С последними версиями 4 и 5 поставляется более удобная утилита Microsoft Help Workshop (файл hcw.exe из каталога help | tools каталога размещения Delphi).
Среда разработчика
В ряде случаев бывает неудобно или невозможно пользоваться пошаговой отладкой программ. Если вы, например, установите точку останова в подпрограмме прорисовки сетки TDBGrid, программа после останова не сможет нормально продолжить свою работу, т. к. в этом случае она будет пытаться восстановить экран и вновь будет остановлена и т. д. В таких ситуациях вам могут помочь контрольные точки, которые не прерывают работу программы, а лишь помещают некоторую информацию в специальный файл трассировки.
Переменные, процедуры и функции модуля System
Модуль SYSTEM автоматически связывается с любой программой, поэтому объявленные в его интерфейсной части типы, константы, переменные и подпрограммы доступны программисту в любой момент. В этом приложении приводится (в алфавитном порядке) список всех объявлений модуля в его интерфейсной секции. Следует заметить, что большинство объявлений осталось неизменным еще со времен давнего предшественника Delphi - системы программирования Turbo Pascal.
Процедуры и функции модуля Match
Тонкая настройка и оптимизация MSDOS
Прежде чем приступить к процессу оптимизации, необходимо выяснить конфигурацию аппаратных и программных средств вашего компьютера. В зависимости от конфигурации вы будете выполнять разные процедуры оптимизации.В составе аппаратных средств обычно имеются:
процессор 8086, 8088, 80286, 80386 или 80486;
стандартная оперативная память (Conventional Memory), обычно её размер составляет 640 килобайт;
расширенная память (Extended Memory), установленная на материнской плате компьютера или на отдельной плате;
дополнительная память (Expanded Memory), расположена на отдельной плате;
дисковод для жёсткого магнитного диска (HDD - Hard Disk Drive) с контроллером;
один или два дисковода для флоппи-дисков (FDD - Floppy Disk Drive)
В зависимости от наличия и типа имеющегося оборудования из числа перечисленного выше вам будет необходимо выбрать те или иные процедуры оптимизации.
Определение конфигурации
Справочник параметров командной строки
Если открыт файл в присоединенной папке, то работа с ним ведется так же, как и с файлами текущей папки. Если выполняется сохранение файла путем создания файла с таким же именем, новый файл сохраняется в текущей папке, а не в присоединенной. Команда append используется при работе с файлами данных, которые не изменяются или изменяются без создания новых копий. Например, при работе с базами данных новые копии файлов, как правило, не создаются. Текстовые редакторы и процессоры обычно сохраняют файлы путем создания новых копий. Чтобы избежать некорректной работы, не используйте команду append с такими программами.Append
Разрешение программе открывать файлы данных в указанных папках, как будто они находятся в текущей папке. Вызванная без параметров, команда append выводит список присоединенных каталогов.
Использование пакетных файлов (bat)
Пакетные файлы, также называемые программами пакетной обработки или сценариями, позволяют упростить выполнение утомительных и часто используемых операций. Пакетный файл представляет собой неформатированный текстовый файл, содержащий одну или несколько команд и имеющий расширение имени .bat или .cmd. Когда имя такого файла вводится в командной строке, программа Cmd.exe выполняет по порядку команды, записанные в файле.
Cacls
Просмотр или изменение файлов избирательных таблиц управления доступом (DACL).
Date
Отображение текущей настройки системной даты. Выполненная без параметров команда date выводит настройку текущей системной даты и приглашение ввести новую дату.
Создание сценариев с помощью программы DiskPart
С помощью DiskPart можно создавать сценарии для автоматизации задач по работе с дисками, таких как создание томов или преобразование дисков в динамические. Составление сценариев этих задач полезно, если система Windows устанавливается с помощью автоматического режима или программы Sysprep, которые не поддерживают создание томов, за исключением загрузочного тома.
Echo
Вывод на экран сообщения или задание режима вывода на экран сообщений команд. Вызванная без параметров команда echo выводит текущий режим.
Fc
Сравнение двух файлов и вывод различий между ними.
Ftp send
Копирование локального файла на удаленный компьютер с использованием текущей настройки типа передаваемого файла.
Getmac
Возвращает аппаратный (MAC) адрес и список сетевых протоколов, связанных с каждым адресом для всех сетевых плат в любом компьютере как локальном, так и доступном по сети.
Helpctr
Запуск справки и поддержки. При вызове без параметров команда helpctr открывает домашнюю страницу центра справки и поддержки.
Install
Служит для загрузки резидентных программ в память. Для указания программы, которую требуется установить, используйте файл системный_корневой_каталог\System32\Config.nt или эквивалентный файл запуска.
Label
Служит для создания, изменения или удаления метки тома (т.е. имени) диска. Команда label без параметров используется для изменения текущей метки тома или ее удаления.
Macfile
Команда Macfile служит для управления серверами, томами, папками и файлами файлового сервера для «Макинтоша» из командной строки. Административные задачи могут быть автоматизированы включением последовательностей команд в пакетные файлы и запуском этих файлов вручную или в заранее определенное время.
Nbtstat
Служит для отображения статистики протокола NetBIOS over TCP/IP (NetBT), таблиц имен NetBIOS для локального и удаленного компьютеров, а также кэша имен NetBIOS. Команда Nbtstat позволяет обновить кэш имен NetBIOS и имена, зарегистрированные в службе имен Интернета Windows (WINS). Запущенная без параметров, команда nbtstat выводит справку.
Netsh DHCP server scope
Следующие команды доступны для выполнения из командной строки dhcp server scope, вложенной в среду netsh. Добавление диапазона адресов для исключения из текущей области выдаваемых адресов.
Netsh DHCP server mscope
Следующие команды доступны для выполнения из командной строки dhcp server mscope, вложенной в среду netsh. Добавление диапазона исключаемых адресов в текущую многоадресную область.
Пример команды Netsh интерфейса IP
Следующая команда настраивает интерфейс с именем Подключение к локальной сети, статическим IP-адресом 10.0.5.99, маской подсети 255.255.255.0 и основным шлюзом 10.0.5.1: set address name="Подключение к локальной сети" source=static addr=10.0.5.99 mask=255.255.255.0 gateway=10.0.5.1
Команды Netsh Routing IPX NetBIOS
Следующие команды доступны для использования в контексте «Netsh Routing IP Relay». Добавляет DHCP-сервер к списку DHCP-серверов, сообщения которого будут перенаправлены агентом DHCP-ретрансляции.
Netstat
Следующие команды доступны для использования в контексте «Netsh Routing IPX NetBIOS». Отображает распространение широковещательных сообщений NetBIOS и трафик на интерфейсах маршрутизаторов.
Команды Netsh Routing IP Relay
Команды Netsh для службы WINS могут использоваться в пакетных файлах и других сценариях для автоматизации задач. В следующем примере показано использование команд Netsh для службы WINS при выполнении различных связанных с ней задач.
Openfiles
Запрашивает или отображает открытые файлы. Также запрашивает, отображает или разъединяет файлы, открытые сетевыми пользователями. Разъединяет одного или нескольких удаленных пользователей, присоединенных к открытым общим файлам.
Файл Pagefileconfig.vbs
Позволяет администратору вывести и настроить параметры использования виртуальной памяти файлом подкачки. Изменяет параметры использования виртуальной памяти файлом подкачки.
Query process
Отображает сведения о процессах, запущенных на сервере терминалов. Эту команду можно использовать для нахождения программ, запущенных выбранным пользователем, а также для нахождения пользователей, запустивших данную программу.
Rasdial
Выполняет автоматический набор номера для клиентов Microsoft. Команда rasdial, запущенная без параметров, показывает состояние текущих подключений.
SC
Взаимодействует с контроллером служб и установленными службами. SC.exe извлекает и задает сведения об управлении службами. Программа SC.exe используется для тестирования и отладки служебных программ. Параметры службы, хранящиеся в реестре, можно настроить так, чтобы контролировать запуск приложений службы во время загрузки и их выполнение как фоновых процессов. С помощью параметров SC.exe имеется возможность настроить конкретную службу, отобразить текущее состояние службы, остановить и запустить службу.
Shell
Указывает имя и местоположение альтернативного командного интерпретатора, которого использует WindowsXP для подсистемы MS-DOS.
Taskkill
Завершает одно или несколько заданий или процессов. Процессы могут быть уничтожены кодом процесса или именем образа.
Tsprof
Копирует сведения о конфигурации одного пользователя (отображенные в расширениях служб терминалов, расположенных в оснастках «Локальные пользователи и группы» и «Active Directory - пользователи и компьютеры») другому. Команда tsprof также может задать путь к профилю для пользователя.
Unlodctr
Удаляет имена счетчиков производительности и текст объяснения для службы или драйвера устройства из системного реестра.
Vol
Отображает метку тома диска и серийный номер, если они существуют. Серийный номер выводится для дисков, отформатированных в версии MS-DOS версии 4.0 и более поздних.
W32tm
Используется для определения причины неполадок, связанных со службой времени Windows
Синтаксис
Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий