Справочник по компонентам Дельфи

Автор: Пользователь скрыл имя, 06 Февраля 2013 в 01:52, аттестационная работа

Описание работы

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

Работа содержит 1 файл

componens.doc

— 980.33 Кб (Скачать)

procedure Open;

procedure Close;

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

Очистка содержимого буфера (для всех форматов) производится вызовом метода:

procedure Clear;

О доступных форматах можно узнать, пользуясь следующими свойствами и методами:

(Ro) property FormatCount: Integer;

-- содержит число форматов в буфере на данный момент;

(Ro) property Formats[Index: Integer]: Word;

-- содержит их полный список. Функция

function HasFormat(Format: Word): Boolean;

проверяет, содержится ли в данный момент формат Format.

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

Через вызов метода

procedure Assign(Source: TPersistent);

в буфер обмена помещаются данные классов TGraphic, точнее, его потомков -- классов TBitmap (формат CF.BITMAP) и TMetaffle (CF.METAFILEPICT). Данные класса TIcon не имеют своего формата и с TClipboard несовместимы.

Допустимо и обратное: в TClipboard есть специальные (скрытые) методы для присваивания содержимого объектам классов TPicture, TBitmap и TMetafile. Допустимы выражения вида:

My Image.Picture.Assign(Clipboard) ;

Для работы с текстом предназначены методы:

function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer;

-- читает текст из буфера обмена в буфер Buffer, длина которого ограничена значением BufSize. Функция возвращает истинную длину прочитанного текста;

procedure SetTextBuf(Buffer: PChar);

-- помещает текст из Buffer в буфер обмена в формате CF_TEXT;

Свойство

property AsText: string;

соответствует содержимому буфера обмена в текстовом формате CF_TEXT

(приведенному к типу string). При отстутствии там данных этого формата возвращается пустая строка.

Методы

function GetAsHandle(Format: Word): THandle;

procedure SetAsHandle(Format: Word; Value: THandle);

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

Два метода предназначены для обмена компонентами через буфер обмена (в специально зарегистрированном формате CF_COMPONENT):

function GetComponent(Owner, Parent: TComponent): TComponent;

procedure SetComponent(Component: TComponent);

Они используются составными частями среды Delphi.

 

Компонент TScreen

TScreen = class(TComponent);

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

Курсор приложения, общий для всех форм, доступен через свойство:

property Cursor: TCursor;

Часто приходится включать "песочные часы" на время выполнения длительной операции. Лучше всего это сделать следующим образом:

Screen.Cursor := crHourglass;

try

(Calculations...} finally

Screen.Cursor := crDefault;

end;

Возвращает дескриптор курсора с индексом Index свойство:

property Cursors[Index: Integer]: HCURSOR;

Няпомшм, что шщексы зарегистрированных курсоров лежат в диапазоне от -17 (crSQLWait) до 0 (crDefault).

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

procedure TFormI.FormCreate(Sender: TObject);

type

TGetStrPunc = function(const Value: string): Integer of object;

var

CursorNames: TStringList;

AddValue: TGetStrPunc;

begin

CursorNames := TStringList.Create;

AddValue := CursorNames.Add;

GetCursorValues(TGetStrProc(AddValue));

ListBoxl.Items.Assign(CursorNames) ;

end;

procedure TFormI-ListBoxlClick(Sender: TObject);

begin Screen.Cursor :=

StringToCursor(ListBoxl.Items[ListBoxl.Itemlndex]);

end;

Имена всех установленных в системе шрифтов помещаются в список, опреде-ленньш в свойстве:

(Ro\ property Fonts: TStrings;

Компонент сообщает неизменяемые свойства экрана (в данном видеорежиме). Его размеры в пикселах определены в свойствах:

(ro) property Height: Integer;

(Ro) property Width: Integer;

Число точек на дюйм дисплея содержится в свойстве:

(Ro) property PixelsPerInch: Integer;

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

J property Forms[Index: Integer]: TForm;

property FormCount: Integer;

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

Следующие два свойства указывают на активную в данный момент форму и ее активный элемент управления:

(Ro) property ActiveControl: TWinControl;

(ro) property ActiveForm: TForm;

При их изменении генерируются соответственно события:

property OnActiveControlChange: TNotifyEvent;

property OnActiveFormChange: TNotifyEvent;

 

Файлы инициализации

TIniFile = class(TObject)

Этот класс -- надстройка над файлом инициализации (его расширение .INI) и процедурами чтения и записи в него значений разных типов. Обратите внимание, что все читаемые и записываемые строки имеют тип string (а не pChar, как в стандартном API Windows).

Конструктор класса

constructor Create(const FileName: string);

создает объект, соответствующий файлу инициализации с именем FileName. В дальнейшем оно доступно через свойство:

(Ro) property FileName: string;

Файл инициализации состоит из строк вида "параметр=значение". Такие строки сведены в секции; имена секций заключаются в квадратные скобки.

Методы класса, посредством которых осуществляется работа с файлом, приведены в таблице:

function ReadStringfconst Section, Ident, Default: string): string;

procedure WriteString(const

Возвращает строку из секции Section, являющуюся значением параметра Ident. При отсутствии секции или параметра возвращается строка Default.

Записывает (или перезаписывает) в секцию Section строку Ident=Value.

function Readlnteger(const Section, Ident: string; Default: Longint): Longint;

 

 

Возвращает значение параметра Ident из секции Section, преобразованное в целое число. В случае любых ошибок возвращается значение Default.

Преобразует Value в строку и записывает его в качестве значения Ident в секции Section.

Работает как Readlnteger, но преобразует значение параметра в булеву переменную.

procedure Writelnteger(const Section, Ident: string; Value: Longint);

function ReadBool(const Section, Ident: string; Default: Boolean): Boolean;

procedure WriteBool(const Section, Ident: string; Value: Boolean);

procedure ReadSection(const Section: string; Strings: TStrings) ;

procedure ReadSectionValues(const Section: string; Strings: TSCrings) ;

Работает, как Writelnteger, но преобразует булево значение Value к виду '0'/"Г.

Считывает в набор строк Strings секцию с именем Section. Максимальная длина секции -- 8191 байт.

Считывает из секции Section в набор строк Strings только значения параметров.

procedure EraseSection(const Section: string);

Удаляет всю секцию с именем Section.


 

Печать данных из приложения

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

TPrinter = class(TObject)

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

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

Информацию обо всех инсталлированных в системе принтерах содержит список свойства:

(Ro) property Printers: TStrings;

Свойство доступно только при вьшолнении приложения. Информация о том, какой принтер из списка является текущим, содержится в свойстве:

property Printerlndex: Integer;

Оно возвращает порядковый номер принтера в списке. Значение -1 используется для идентификации принтера, установленного по умолчанию.

Метод

procedure GetPrinter(ADevice, ADriver, APort: PChar;

var ADeviceMode: THandle);

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

Метод

procedure SetPrinter(ADevice, ADriver, APort: PChar;

ADeviceMode: THandle);

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

Свойство

(Ro) property Fonts: TStrings;

содержит список шрифтов, поддерживаемых текущим принтером. Свойство доступно только при вьшолнении приложения.

Расположение листа бумаги определяется свойством:

property Orientation: TPrinterOrientation;

TPrinterOrientation = (poPortrait, poLandscape) ;

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

(Ro) property PageHeight: Integer;

(R^ property PageWidth: Integer;

Свойство

property Title: string;

содержит текстовую строку, которая используется для идентификации процесса печати (работы) в списке Диспетчера печати 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;

При необходимости пропорции распечатываемого графического объекта можно скорректировать при помощи свойства формы-контейнера PrintScale.

 

Компонент TSession

TObject-->TPersistent->TConiponent->TSession

Модуль DB

В Палитре компонентов отсутствует

Осуществляет общее управление процессом связывания базы данных с приложением. Он отсутствует в Палитре компонентов Delphi и создается автоматически при выполнении приложения, при этом ему присваивается имя Session. Объект обладает рядом методов, которые позволяют получать и использовать информацию о связях с базой данных. Все свойства объекта доступны только при выполнении приложения и в режиме "Только для чтения". Исключение составляют свойства KeepConnections, NetFileDir и PrivateDir, значения которых можно изменять.

Свойства компонента

(Rc/f property DatabaseCount: Integer;

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

(Rd property Databases[Index: Integer]: TDatabase;

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

(Ro) property Handle: HDBISES; property KespConnections: Boolean;

Дескриптор компонента, используется для организации прямого доступа к функциям API BDE.

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


 

(Ro) property Locale: TLocale; TLocale = Pointer;

Содержит информацию о языковом драйвере BDE.

property NetFileDir: String;

Определяет каталог, содержащий сетевой файл управления BDE -- PDOXUSRS.NET, предназначенный для соединения с таблицами Paradox.

property PrivateDir: String;

Определяет каталог, хранящий временные файлы.


 

Методы компонента

procedure AddPassword(const Password: String);

Позволяет задать пароль для доступа к таблицам Paradox.

procedure CloseDatabase(Database: TDatabase) ;

Закрывает компонент TDatabase, идентифицируемый по параметру Database.

procedure DropConnections;

Прерывает все соединения с неактивными базами данных (не имеющими открытых приложением наборов данных).

function FindDatabase(const DatabaseName: String): TDatabase;

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

procedure GetAliasNames(List: TStrings);

Очищает список, передаваемый в параметре List метода и заполняет его именами всех определенных в BDE псевдонимов.

procedure GetAliasParams(const AliasName: String; List: TStrings);

Очищает и заполняет список List параметрами псевдонима, задаваемого параметром AliasName.

procedure GetDatabaseNames(List: TStrings) ;

Возвращает список List имен всех баз данных, определенных в BDE и приложении.

procedure GetDriverNames(List: TStrings) ;

Очищает и заполняет список List, передаваемый параметром метода, именами всех установленных в BDE драйверов.

procedure GetDriverParams(const DriverName: String; List: TStrings) ;

Очищает и заполняет список параметрами драйвера BDE. Параметр DriverName задает имя драйвера, параметр List определяет список.

function GetPassword: Boolean;

Показывает стандартный диалог ввода пароля. Возвращает True при нажатии кнопки ОК и False при нажатии

Cancel.

Информация о работе Справочник по компонентам Дельфи