Методические указания для проведения практических и лабораторных занятий по дисциплине "Программирование на языке высокого уровня" для студентов специальностей 220200 Автоматизированные системы обработки информации и управления

Вид материалаМетодические указания

Содержание


4. Справочник по функциям delphi
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
содержит текстовую строку, которая используется для идентификации процесса печати (работы) в списке Диспетчера печати Windows.

Дескриптор принтера, с которым связан объект 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 0 — при Strl >Str2.

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.