Методические указания для проведения практических и лабораторных занятий по дисциплине "Программирование на языке высокого уровня" для студентов специальностей 220200 Автоматизированные системы обработки информации и управления
Вид материала | Методические указания |
Содержание4. Справочник по функциям delphi |
- Рабочая программа по дисциплине Программирование на языке высокого уровня для специальности, 182.97kb.
- Соболева Наталья Владимировна методические указания, 73.26kb.
- Методические указания к проведению лабораторных работ. Специальность 23. 01. 02 «Автоматизированные, 1178.37kb.
- Рабочая программа По дисциплине «Системы искусственного интеллекта» для специальности, 86.74kb.
- Рабочая программа По дисциплине «Программирование на языке высокого уровня» По специальности, 280.81kb.
- Р. Е. Алексеева кафедра ису программирование на языке высокого уровня методические, 57.65kb.
- Рабочая программа по дисциплине «Алгоритмические языки и программирование» Для специальности, 208.45kb.
- Рабочая программа дисциплины «Объектно-ориентированное программирование» для специальности, 325.53kb.
- А. В. Яковлев Операционные системы и системное программирование Раздел Операционная, 1847.03kb.
- Рабочая программа дисциплины «Автоматизированные информационные системы» для специальности, 301.29kb.
Дескриптор принтера, с которым связан объект TPrinter, возвращается в свойстве:
(Ro) property Handle: HDC;
Поверхность печатаемой страницы доступна для вывода графических объектов (например, изображений) через свойство:
(Ro) property Canvas: TCanvas;
При использовании канвы необходимо проверить используемый принтер на предмет поддержки графики. Свойство доступно только при выполнении приложения.
Для управления процессом печати объект содержит набор методов и свойств:
procedure BeginDoc; | Начинает печать документа. |
procedure EndDoc; | Завершает печать документа. |
(Ro) property Printing: Boolean; procedure Abort; | Определяет состояние процесса. Возвращает True во время печати. |
Используется для прерывания печати. | |
(Ro) property Aborted: Boolean; | Устанавливается в True, если печать прервана. |
procedure NewPage; | Отменяет печать текущей страницы и начинает распечатку следующей. При этом значение свойства PageNumber увеличивается на единицу. |
(Ro) property PageNumber: Integer; | Содержит номер печатаемой страницы. Обращение к нему имеет смысл только в процессе печати документа. |
В модуле PRINTERS описан метод
procedure AssignPrn(var F: Text);
который связывает текстовую файловую переменную с текущим принтером, что позволяет направлять на принтер текстовые данные, используя традиционные процедуры Write и Writeln. При печати используется шрифт, определенный в канве объекта TPrinter. Следующий пример распечатывает содержимое многострочного редактора PrintMemo при нажатии кнопки PrintBtn:
procedure PrintForm.PrintBtnClick(Sender: TObject);
var
PrnTxt: System.Text; i: Integer;
begin
AssignPrn(PrnTxt) ;
Rewrite(PrnTxt) ;
for i := 0 to PrintMemo. Lines .Count -1 do Writeln (PrnTxt, PrintMemo.Lines [ i ]);
CloseFile(PrnTxt) ;
end;
Для печати графики необходимо передать требуемый графический объект (изображение, график, фигуру) в канву объекта Printer. В следующем примере при нажатии кнопки PrintBfcn печатается изображение из компонента Printlmage:
procedure PrintForm.PrintBtnClick(Sender: TObject);
begin
with Printer do
begin
BeginDoc;
Canvas.Draw(0, 0, Printlmage.Picture.Graphic);
EndDoc ;
end
end;
При необходимости пропорции распечатываемого графического объекта можно скорректировать при помощи свойства формы-контейнера PrintScale.
4. СПРАВОЧНИК ПО ФУНКЦИЯМ DELPHI
В этом разделе мы приведем справочную информацию по функциям, имеющимся в библиотеке времени выполнения Delphi. Они сгруппированы по областям применения. Не рассматриваются:
• функции, содержащиеся в модуле SYSTEM и составляющие неотъемлемую часть самого языка Паскаль. Они не изменялись фирмой Borland уже на протяжении многих версий, и приводить их здесь нет необходимости;
Большинство упомянутых здесь функций сосредоточено в модуле SYSUTILS. Для функции, которая относится к другому модулю, приведено его имя.
4.1. Функции работы со строками
В Delphi вынужденно уживаются два стандарта работы со строковыми данными. Первый из них, когда длина строки записывается в ее первом байте, традиционен для Паскаля. Ему соответствует тип данных string. Другой подразумевает, что строка заканчивается нулевым символом. Такие строки имеют тип PChar и применяются в основном при обращении к функциям API Windows.
Естественно, для выполнения операций со строками этих типов нужно предусмотреть два различных набора функций, которые и описаны ниже.
Первая таблица содержит функции для работы с типом string. Все перечисленные в ней функции находятся в модуле SYSUTILS.
function NewStrtconst S: String): Pstring; | Создает копию строки S и возвращает указатель на нее. |
procedure DisposeStr(P: PString) ; | Уничтожает строку, на которую указывает Р. |
procedure AssignStr(var P: Pstring; const S: strings- | Уничтожает строку, на которую указывает Р и затем присваивает ему адрес созданной копии строки S. |
procedure AppendStrfvar Dest: string; const S: string); | Добавляет строку S в конец строки Dest. |
function Uppercase(const S: string): string; | Преобразует символы 'a'..'z' в строке S к верхнему регистру. |
function LowerCase(const S: string): string; | Преобразует символы 'A'..'Z' в строке S к нижнему регистру. |
function CompareStr(const SI, S2: string): Integer; | Сравнивает две строки S1 и S2 с учетом регистра символов. Возвращаемое значение равно 0 в случае равенства строк или разности кодов пары первых несовпадающих символов. |
function CompareText(const SI, S2: string): Integer; | Сравнивает две строки без учета регистра символов. |
function AnsiUpperCase(const S: string): string; | Преобразует символы в строке к верхнему регистру с учетом языкового драйвера. |
function AnsiLowerCase(const S: string) : string; | Преобразует символы в строке к нижнему регистру с учетом языкового драйвера. |
function AnsiCompareStr(const SI, S2: string): Integer; | Сравнивает две строки с использованием языкового драйвера и с учетом регистра символов. |
function AnsiCompareText(const SI, S2 : string) : Integer; | Сравнивает две строки с использованием языкового драйвера и без учета регистра символов. |
function IsValidldent(const Ident: string): Boolean; | Возвращает True, если строка Ident может служить идентификатором в программе на Object Pascal (т. е. содержит только буквы и цифры, причем первый символ — буква). |
function IntToStr(Value: Longint): string; | Преобразует целое число в строку. |
function IntToHex(Value: Longint; Digits: Integer): s t r ing ; | Преобразует целое число в строку с его шестнадцатиричным представлением. |
function StrToInt(const S: string): Longint; | Преобразует строку в целое число. При ошибке возникает исключительная ситуация EConvertError. |
function StrToIntDef(const S: string; Default; Longint): Longint ; | Работает как StrToInt, но при ошибке возвращает значение Default. |
function LoadStr(Ident: Word) : string; | Загружает строку с индексом Ident из ресурсов приложения. |
function FmtLoadStr(Ident: Word; const Args: array of const): string; | Загружает строку с индексом Ident из ресурсов приложения с форматированием (см. описание функции Format). |
Следующая таблица содержит функции для работы со строками типа PChar (также находятся в модуле SYSUTILS):
function StrLIComp(Strl, Str2: PChar; MaxLen: Cardinal) : Integer; | Работает как StrLComp, но без учета регистра символов. |
function StrScantStr: PChar; Chr: Char) : PChar; | Отыскивает первое вхождение символа Chr в строку Str и возвращает указатель на него или nil в случае отстутствия. |
function StrRScanfStr: PChar; Chr: Char) : PChar; | Работает как StrScan, но отыскивается последнее вхождение Chr. |
function StrPos(Strl, Str2: PChar) : PChar; | Отыскивает первое вхождение строки Str2 в строку Strl и возвращает указатель на нее или nil в случае отстутствия. |
function StrUpperfStr: PChar) : PChar; | Преобразует строку к верхнему регистру. |
function StrLower(Str: PChar): PChar; | Преобразует строку к нижнему регистру. |
function StrPaslStr: PChar): String; | Преобразует строку Str в строку типа string. |
function StrAlloc(Size: Cardinal): PChar; | Размещает в куче памяти новую строку размером Size и возвращает указатель на нее. |
function StrBufSize(Str: PChar): Cardinal; | Возвращает размер блока памяти, выделенного для строки при помощи функции StrAlloc. |
function StrNewfStr: PChar): PChar ; | Размещает в куче памяти копню строки Str и возвращает указатель на нее. |
procedure StrDispose(Str: PChar); | Уничтожает строку, размещенную при помощи StrAlloc или StrNew. |
function StrLenfStr: PChar): | Возвращает число символов в строке Str (без учета завершающего нулевого). |
function StrEndfStr: PChar): PChar; | Возвращает указатель на завершающий нулевой символ строки Str. |
function StrMove(Dest, Source: PChar; Count: Cardinal): PChar; | Копирует из строки Source в строку Dest ровно Count символов, причем строки могут перекрываться. |
function StrCopy(Dest, Source: PChar): PChar; | Копирует Source в Dest и возвращает указатель на Dest. |
function StrECopy(Dest, Source: PChar): PChar; | Копирует Source в Dest и возвращает указатель на завершающий символ Dest. |
function StrLCopy(Dest, Source: PChar; MaxLen: Cardinal): PChar; | Работает как StrCopy, но копирует не более MaxLen символов. |
function StrPCopy(Dest: PChar; const Source: String): PChar; | Копирует строку Source (типа string) в Dest и возвращает указатель на Dest. |
function StrPLCopy(Dest: PChar; const Source: string; MaxLen: Cardinal): PChar; | Работает как StrPCopy, но копирует не более MaxLen символов. |
function StrCat(Dest, Source: PChar): PChar; | Дописывает Source к концу Dest и возвращает указатель на Dest. |
function StrLCatfDest, Source: PChar; MaxLen: Cardinal) : PChar; | Работает как StrCat, но копирует не более MaxLen-StrLen(Dest) символов. |
function StrCoirip(Strl, Str2: PChar): Integer; | Сравнивает две строки (посимвольно). Возвращает значение: <0 — при Strl |
function StrIComp(Strl, Str2: PChar): Integer; | Работает как StrComp, но без учета регистра символов. |
function StrLComp(Strl, Str2: PChar; MaxLen: Cardinal): Integer; | Работает как StrComp, но сравнение происходит на протяжении не более чем MaxLen символов. |
4.2. Функции работы с файлами
Эта часть библиотеки претерпела изменения в Delphi. К функциям, которые работали с файлом через файловую переменную, добавились функции, работающие с дескриптором файла. Они рассматривают файл как двоичный; с текстовыми файлами нужно работать "по старинке".
Файловые функции, описанные в модуле SYSUTILS, приведены в таблице:
function File0pen(const FileName: string; Mode: Word) : Integer; | Открывает существующий FileName файл в режиме Mode (см. примеч. 1). Значение, возвращаемое в случае успеха, — дескриптор открытого файла. В противном случае — код ошибки DOS. |
function FileCreate(const PileName: string): Integer; | Создает файл с именем FileName. Возвращает то же, что и FileOpen. |
function FileRead(Handle: Integer; var Buffer; Count: Longint): Longint; | Считывает из файла с дескриптором Handle Count байт в буфер Buffer. Возвращает число реально прочитанных байт или -1 при ошибке. |
function FileWrite(Handle: Integer; const Buffer; | Записывает в файл с дескриптором Handle Count байт из буфера Buffer. Возвращает число реально записанных байт или -1 при ошибке. |
function FileSeek(Handle: Integer; Offset: Longint; Origin: Integer): Longint; | Позиционирует файл с дескриптором Handle в новое положение. При Origin = 1,2,3 положение смещается на Offset байт от начала файла, текущей позиции и конца файла соответственно. Возвращает новое положение или -1 при ошибке. |
procedure FileClose(Handle: | Закрывает файл с дескриптором Handle. |
function FileAge(const | Возвращает значения даты и времени создания файла или -1, если файл не существует. |
function FileExists(const | Возвращает True если файл FileName существует к найден. |
function FindFirst(const Path: string; Attr: Integer; var SearchRec: TSearchRec): Integer; | Ищет первый файл, удовлетворяющий маске поиска, заданной в Path и с атрибутами Attr (см. примеч. 2). В случае успеха заполняет запись SearchRec (см. примеч. 3) и возвращает 0, иначе возвращает код ошибки DOS. |
function FindNext(var SearchRec: TSearchRec): Integer; | Продолжает процесс поиска файлов, удовлетворяющих маске поиска. Параметр SearchRec должен быть заполнен при помощи FindFirst. Возвращает 0, если очередной файл найден, или код ошибки DOS. Изменяет SearchRec. |
procedure FindClose(var | Завершает процесс поиска файлов, удовлетворяющих маске поиска. |
function FileQetDate(Handle: Integer) : Longint; | Возвращает время создания файла с дескриптором Handle (в формате DOS) или -1, если дескриптор недействителен. |
procedure FileSetDate(Handle: Integer; | Устанавливает время создания файла с дескриптором Handle (в формате DOS). |
function FileGetAttr(const FileName: string): Integer; | Возвращает атрибуты (см. примеч. 2) файла с именем FileName или код ошибки DOS, если файл не найден. |
function FileSetAttrtconst FileName: string; Attr: | Устанавливает атрибуты файла с именем FileName. |
function DeleteFile(const | Уничтожает файл с именем FileName и в случае успеха возвращает True. |
function RenameFile(const OldName, NewName: string): Boolean; | Переименовывает файл с именем OldName в NewName и возвращает True в случае успеха. |
function ChangeFileExt(const FileName, Extension: string): string; | Изменяет расширение в имени файла FileName на Extension и возвращает новое значение FileName. Имя файла не изменяется. |
function ExtractFilePath(const FileName: string): string; | Извлекает из строки с полным именем файла FileName часть, содержащую путь к нему. |
function ExtractFileName(const FileName: string): string; | Извлекает из строки с полным именем файла FileName часть, содержащую его имя и расширение. |
function ExtractFileExt(const FileName: string): string; | Извлекает из строки с полным именем файла FileName часть, содержащую его расширение. |
function ExpandFileName(const FileName: string): string; | Возвращает полное имя файла FileName, добавляя при необходимости путь к нему и переводя все символы в верхний регистр. |
function FileSearch(const Name, DirList: string): strings- | Производит поиск файла с именем Name в группе каталогов, заданных параметром DirList. Имена каталогов должны отделяться друг от друга точкой с запятой. Возвращает в случае успеха полное имя файла или пустую строку, если файл не найден. |
function DiskFree(Drive: Byte): Longint; | Возвращает количество в байтах свободного места на заданном диске. Значение параметра Drive: 0 — для текущего диска, 1 — для А, 2 — для В и т. д. Если параметр неверен, функция возвращает -1. |
function DiskSize(Drive: Byte): Longint; | Возвращает размер диска Drive в байтах. Параметр Drive означает то же, что и в DiskFree. |
function FileDateToDateTime(FileDate: Longint): TDateTime; | Преобразует дату и время в формате DOS в принятый в Delphi формат TDateTime. |
function DateTimeToFileDate(DateTime: TDateTime): Longint; | Преобразует дату и время из формата TDateTime в формат DOS. |
0>