Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Динамические библиотеки) такого не было в списке( на всякий случай :)




Динамически загружаемые библиотеки

Динамически загружаемая библиотека (от англ. dynamically loadable library) — это библиотека подпрограмм, которая загружается в оперативную память и подключается к использующей программе во время ее работы (а не во время компиляции и сборки). Файлы динамически загружаемых библиотек в среде Windows обычно имеют расширение.dll (от англ. Dynamic-Link Library). Для краткости в этой главе мы будем использовать термин динамическая библиотека, или даже просто библиотека, подразумевая DLL-библиотеку.

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

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

 

 

Работа с файлами.

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

Понятие файл имеет две стороны: физическое и логическое. Под файлом физическим понимается именованная область внешней памяти(жесткого диска, гибкой дискеты, диска CD-ROM). Логический файл – это наши представления о структуре данных.

var <Ф_имя>: File;
Описанная таким образом файловая переменная считается нетипизированной, и позволяет работать с файлами с неизвестной структурой. Данные считываются и записываются побайтно блоками, размер которых указывается при открытии файла, вплоть от 1 байт.

 

Var <Ф_имя>: File of <тип> файл из элементов фиксированного размера; элементами такого файла чаще всего являются записи (типизованный файл)

 

Var<Ф_имя>: TextFile; элементами такого файла являются текстовые строки(текстовый файл)

 

Процедура чтения-записи.

Read(F, V1 [, список_считывания ]) - считывает одно V1 или несколько значений из файла, определяемого файловой переменной F и присваивает эти значения переменным в порядке, определяемом списком.

ReadLn(F, V1 [, список_считывания ]) - расширение Read и отличается тем, что после считывания данных одного списка, при следующем обращении к ReadLn данные будут считываться с начала новой строки.

Write(F, V1 [, список_записи ]) - записывает одно или несколько значений в соответствии со списком в файл, определяемый файловой переменной.

WriteLn((F, V1 [, список_записи ]) - расширение Write, после записи переменных из списка при следующем обращении к Write данные будут записаны со следующей строки.

 

 

 
6. Строковые типы данных В выражениях Delphi поддерживает три физических строковых формата: короткий (ShortString), длинный (LongString) и широкий (WideString). Их можно комбинировать в операторах присваивания и выражениях. Переменные типов AnsiString и WideString - это динамически распределяемые массивы символов, максимальная длина которых ограничивается только наличием памяти. Разница между ними состоит в том, что в AnsiString знаки записываются в формате char, а в WideString- в формате WideChar. Обычно вполне достаточно одного типа AnsiString, однако при работе с международными наборами символов, такими как UNICODE, удобнее использовать WideString. Тип ShortString-это, по существу, массив Array [0..255] of char. Первый его элемент задает динамическую длину строки, которая может принимать значения от 0 до 255 символов. Символы, составляющие строку, занимают места от 1 до 255. Тип ShortString предназначен, в основном, для обеспечения совместимости с ранними версиями Delphi и Borland Pascal. Логический строковый тип именуется просто String. Отнесение его к типу AnsiString или ShortString задается командой $Н. По умолчанию задается { $Н+}, и String совпадает с AnsiString. Если задать команду {$Н- }, то String будет совпадать с ShortString и иметь максимальную длину, равную 255 символам.     9. Виды подпрограмм делфи В практике программирования часто встречается ситуация, когда одну и ту же группу операторов требуется выполнить без изменений в нескольких местах программы Подпрограммой называется именованная логически законченная группа операторов, которую можно вызвать по имени (т.е. выполнить) любое количество раз из различных мест программы. В языке Delphi подпрограммы оформляются в виде процедур и функций. Процедура — это подпрограмма, имя которой не может использоваться в выражениях в качестве операнда. Процедура состоит из заголовка и тела. Когда процедура описана, ее можно вызвать по имени из любой точки программы. Когда процедура выполнит свою задачу, программа продолжится с оператора, следующего непосредственно за оператором вызова процедуры. Использование имени процедуры в программе называется оператором вызова процедуры. Функция также является подпрограммой, но в отличие от процедуры ее имя может использоваться в выражениях в качестве операнда, на место которого подставляется результат работы этой функции. 2 вида подпрограмм: функции и процедуры: 1.Стандартные-,созданные разработчиками языка 2.Пользовательские-кот создает сам программист 3.Обработки события-, шаблоны которых автоматически создаются средой программирования и дополняются пользователем. Ф-ии и процедуры должны быть описаны в разделе описаний. После этого они м.б.использованы в основном разделе: begin-end. Все структуры подпрограмм аналогичны структуре главной программы: 1.заголовок. 2.раздел описаний. 3.Основной блок.   -------------------------------------------------------------------------------------------------------------------------- 12. Типы формальных параметров Параметры, указываемые в заголовках подпрограмм при их описании, - формальные параметры. В списке формальных параметров должны быть перечислены имена формальных параметров и их типы, например Procedure ABC(a: Real; b: Integer; с: Char); Однотипные параметры объединяют в подсписки, например, Function Fab(a,b: Real): Real; Объявленные формальные параметры процедур могут быть следующих типов: · параметры-значения; · параметры-переменные, перед которыми должно стоять зарезервированное слово Var и после которых указывается их тип; · параметры-процедуры, перед которыми должно стоять зарезервированное слово procedure; · параметры-функции, перед которыми должно стоять зарезервированное слово function и после которых указывается тип возвращаемого значения; · нетипизированные параметры, перед которыми должно стоять зарезервированное слово Var, а указание типа отсутствует. В этой работе будем использовать только параметры-значения и параметры-переменные, остальные типы параметров рассмотрим позднее. Параметр-значение - значение переменной, соответствующей этому параметру, можно изменять внутри процедуры, однако в исполняемый блок программы эти изменения не будут переданы.Фактическим параметром-значением при вызове может быть переменная, выражение, обращение к функции. Параметр-переменная - переменную, соответствующей этому параметру, можно изменять внутри процедуры, в вызывающий исполняемый блок будет передано изменённое значение. В заголовке процедуры параметру-переменной предшествует зарезервированное слово Var. Фактическим параметром-переменной при вызове может быть только переменная.       15. Операторы присваивания и безусловного перевода Оператор присваивания Результат вычисления выражения для его дальнейшей обработки (например, дл вывода в поле на форме) надо предварительно сохранить, а именно записать в пер» менную, которая предварительно должна быть объявлена. Чтобы поместить данные в переменную (в область памяти, соответствующую имен этой переменной; такое соответствие отслеживается компилятором автоматически надо использовать оператор присваивания. Он записывается так: имя-переменной:= новое-значение; В левой части оператора присваивания указывается имя переменной, в которут будет занесено значение выражения, расположенного справа от обозначения one ратора (символов:=). Оператор безусловного перехода оператор безусловного перехода goto ("перейти к"). Он задумывался для того случая, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой, оператор. Метка — это именованная точка в программе, в которую можно передать управление. Перед употреблением метка должна быть описана. Раздел описания меток начинается зарезервированным словом label, за которым следуют имена меток, разделенные запятыми. За последним именем ставится точка с запятой. В разделе операторов метка записывается с двоеточием. Переход на метку выполняется с помощью зарезервированного слова goto, за которым следует имя метки       18. For оператр цикла со счетчиком   Оператор повтора for используется в том случае, если заранее известно количество повторений цикла. Приведем наиболее распространенную его форму: for <параметр цикла>:= <значение 1> to <значение 2> do <оператор>; где <параметр цикла> — это переменная любого порядкового типа данных; <значение 1> и <значение 2> — выражения, определяющие соответственно начальное и конечное значения параметра цикла (они вычисляются только один раз перед началом работы цикла); <оператор> — тело цикла. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного. После каждого повтора значение параметра цикла увеличивается на единицу. если начальное значение параметра цикла больше конечного значения, цикл не выполнится ни разу. Вторая форма записи оператора for обеспечивает перебор значений параметра цикла не по возрастанию, а по убыванию:for <параметр цикла>:= <значение 1> downto <значение 2> do <оператор>; Если в такой записи оператора for начальное значение параметра цикла меньше конечного значения, цикл не выполнится ни разу     21. Обработка исключительных ситуаций Делфи Исключительная ситуация это такая ситуация, в результате которой генерируется ошибка, и выполнение программы прерывается. Именно потому такая ситуация и называется исключительной. Например, деление на ноль - классический примерисключительной ситуации Контроль типа вводимых величин в поле TEdit можно осуществить путём проверки принадлежности вводимых символов алфавиту вещественных или целых чисел. Процедуры:case of,if not. ['0'..'9', '+', '-', ','] - множество символов алфавита чисел вещественного типа, (число в поле записывается с «,»). ['0'..'9', '+', '-'] - множество символов алфавита чисел целого типа ShowMessage(const Msg: string) - выводит простое окно сообщения с кнопкой OK, и останавливает выполнение программы до нажатия кнопки. Msg – строковая константа - сообщение         24. Этапы разработки программы делфи Этапы разработки программы Процесс создания программы состоит из следующих этапов: Постановка задачи Разработка или выбор алгоритма решения задачи Написание программы. В свою очередь написание программы состоит из следующих этапов: Редактирование исходного текста программ Компиляция Отладка Тестирование Редактирование исходного текста программы – это процесс набора текста программы. За-пись элементов текста программы подчиняется некоторым правилам – синтаксису языка про-граммирования. Все операции с текстом выполняет специальная программа – текстовый редактор. Результат работы редактора – текстовый файл с исходной программой(имя.dpr, имя.pas). Компиляция – процесс создания исполняемой программы из исходной, содержащий два этапа: 1. Синтаксический контроль текста программы – процесс выявления (обнаружения) синтакси-ческих ошибок. В случае отсутствия ошибок переход ко второму этапу. 2. Генерация машинного кода из исходного – операторы языка высокого уровня преобразуются в инструкции процессора компьютера – машинные команды. Компиляцию выполняет специальная программа – компилятор. Результат работы компиля-тора – исполняемый файл (исполняемая программа) или приложение(имя.exe). Отладка – процесс поиска ошибок в исходном тексте программы. Устраняются ошибки с помощью текстового редактора. Синтаксические ошибки исправляются наиболее просто – их характер и место возникновения указывает компилятор. Логические ошибки помогает найти специальная программа – отладчик. Тестирование – процесс изучения работы программы на как можно большем количестве наборов входных данных. При тестировании выявляют более сложные логические ошибки. В настоящее время все этапы написания программы выполняются с помощью одной специ-альной программы – интегрированной среды разработчика(ИСР).       27. Графические методы Методы, с помощью кот. строят графические примитивы: - Arc (XI, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer) - метод рисует сегмент эллипса. Эллипс определяется описывающим прямоугольником (X1,Y1) — (X2,Y2). Начальная точка сегмента лежит на пересечении эллипса и луча, проведенного из его центра через точку (X3.Y3). Конечная точка сегмента лежит на пересечении эллипса и луча, проведенного из его центра через точку (X4.Y4). Сегмент рисуется против часовой стрелки. - Chord(Xl, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer) - Рисует хорду и заливает отсекаемую ею часть эллипса. Эллипс, начальная и конечная точки определяются, как в методе Arc. - Pie (XI, Yl, Х2, Y2, ХЗ, Y3, Х4, Y4: Integer) - Рисует сектор эллипса, описываемого прямоугольником (X1,Y1) — (X2,Y2). Стороны сектора лежат на лучах, проходящих из центра эллипса через точки (X3.Y3) и (X4,Y4). - RoundRect (XI, Yl, Х2, Y2, ХЗ, Y3: Integer) -рисует прямоугольник с закругленными углами. Координаты вершин — те же, что и в методе Rectangle. Закругления рисуются как сегменты эллипса с размерами осей по горизонтали и вертикали ХЗ и Y3. - LineTo(X, Y: Integer) - проводит линию текущим пером из текущей точки в (X,Y). - MoveTo(X, Y: Integer) - перемещает текущее положение пера (свойство PenPos) в точку (X,Y). - Polyline(const Points: array of TPoint) - строит ломаную линию, используя массив координат точек Points. - Polygon(const Points: array of TPoint) - строит многоугольник, используя массив координат точек Points. При этом последняя точка соединяется с первой и внутренняя область закрашивается. - Draw(X, Y: Integer; Graphic: TGraphic) - осуществляет рисование графического объекта Graphic (точнее, вызов метода его рисования) в области с верхним левым углом (X,Y). 26. Основы графического программирования в Делфи Основы графического программирования в Delphi Художник в своей работе использует пера и кисти. Методы, обеспечивающие вычерчивание на поверхности холста графических примитивов, тоже используют перо и кисть. Перо применяется для вычерчивания линий и контуров, а кисть - для закрашивания областей, ограниченных контурами. Перу и кисти, используемым для вывода графики на холсте, соответствуют свойства Реn (перо) и Brush (кисть), кот. представляют собой объекты типа треп и TBrush, соответственно. Свойства пера: Color -Цвет линии, вычерчиваемой пером (clBlack, clGreen и т.д) Width - Толщина линии (в пикселах) Style - Вид линии; PsSolid – сплошная; PsDash – пунктирная, длинные штрихи; PsDot – пунктирная, короткие штрихи; PsClear – линия не отображается;Mode - Режим отображения; PmBlack – цвет линии черный, не зависит от значения свойства Pen.Color; PmCopy – цвет линии определяется значением свойства Pen.Color; PmNotCopy – цвет линии является инверсным по отношению к значению свойства Pen.Color Свойства кисти: Color – определяет цвет закрашивания замкнутой области Style – стиль заполнения области Значения свойста StyleBrush: bsSolid - Сплошная заливка bsClear - Область не закрашивается bsHorizontal - Горизонтальная штриховка bsVertical - Вертикальная штриховка bsFDiagonal - Диагональная штриховка с наклоном линий вперед bsBDiagonal - Диагональная штриховка с наклоном линий назад bsCross - Горизонтально-вертикальная штриховка, в клетку bsDiagCross - Диагональная штриховка, в клетку Любая картинка, чертеж, схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Таким образом, для того чтобы на экране появилась нужная картинка, программа должна обеспечить вычерчивание (вывод) графических примитивов, составляющих эту картинку. Вычерчивание графических примитивов на поверхности компонента (формы или области вывода иллюстрации) осуществляется применением соответствующих методов к свойству Canvas этого компонента. Свойства холста: PenPos - определяет в координатах хоста текущую позицию пера. ClipRect - определяет доступную область рисования на канве и область, нуждающуюся в перерисовке. CopyMode - определяет режим копирования графического изображения на холст. Используя свойство можно достичь различных эффектов объединения изображений и их комбинирования.    
       
       
       
       

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...