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

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

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

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

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

componens.doc

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

 

Компонент TFileListBox

TObject->TPersistent-"TComponent->TControl-"TWinControl->

-->TCustomListBox->TFlleListBox

Модуль FILECTRL

Страница Палитры компонентов System

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

property Drive: char;

property Directory: string;

содержат имя устройства и каталога на нем, а метод

procedure Update;

обновляет список файлов. Метод

procedure AppiyFilePath (const EditText: string);

пытается полностью переустановить путь, заменив текущее значение на то, что содержится в параметре EditText. При этом, если компонент связан со списками дисков и каталогов, то и там значения изменяются.

Свойство

(РЫ property FileEdit: TEdit;

содержит указатель на редактирующий элемент, которому автоматически передается имя текущего файла, которое также доступно как значение свойства:

property FileName: String;

В список можно включить не все файлы, а только обладающие атрибутами, определенными в свойстве:

(Pb) property FileType: TFileType;

TFileAttr = (ftReadOnly, ftHidden, ftSystem, fCVolumeID, ftDirectory, ftArchive, ftNormal) ;

TFileType = set of TFileAttr;

Шаблон, используемый при включении файлов в список, задается свойством:

(Pb) property Mask: string;

Если свойство

(Pb) property MultiSelect: Boolean;

установлено в True, то в списке может быть одновременно выделено несколько

файлов.

При смене текущего файла возникает событие:

(РЙ property OnChange: TNotifyEvent;

Как и прежде, объекты Items.Objects в этом разделе представляют пиктограммы для разных типов файлов. Задает их показ значение True следующего свойства:

(Pb) property ShowGlyphs: Boolean;

 

Компонент TFilterComboBox

TObjecC-->TPersistent->TCoinponent->TControl-"TWinControl->

->TCustomComboBox-->.TFilterComboBox

Модуль FILECTRL

Страница Палитры компонентов System

Этот компонент-комбинированный список предназначен для выбора шаблона-фильтра, который производит селекцию файлов по расширениям. Подробное описание синтаксиса такого шаблона см. в разделе "Компоненты-стандартные диалоговые окна Windows". Сам фильтр задается в свойстве:

(Pb) property Filter: string;

Он состоит из двух частей -- описывающего тип текста и собственно шаблона. Они доступны и по отдельности через свойства:

(Ro) property Mask: strings-property Text: string;

В компоненте должна быть определена ссылка на список файлов, где будут отражаться изменения фильтра. Он должен иметь тип TFileListBox, что определяется свойством:

(Pb) property FileList: TFileListBox;

При изменении текущего элемента списка возникает событие:

iPbi property OnChange: TNotifyEvent;

 

Компонент TDirectoryOutline

TObject-->TPersistent->TComponent->TControl--"TWinControl-->

-^TCustomControl--^CustomGrid--^TCustomOutline-^TDirectoryOutline

Модуль DIROUTLN

Страница Палитры компонентов Samples

Этот компонент создан для отображения иерархического дерева файлов и каталогов текущего диска и, таким образом, может заменить сразу компоненты TDirectoryListBox и TFileListBox. Он имеет много общего с компонентом TOutline, отличие заключается в возможности работы только с файловой структурой.

Значения текущего диска, содержимое файловой системы которого отображается в дереве, устанавливается посредством свойства:

property Drive: Char;

Текущий каталог соответствует значению свойства:

property Directory: TFileName;

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

Стиль отображаемых имен файлов и каталогов определяет свойство:

(РЬ) property TextCase: TTextCase;

TTextCase = (tcLowerCase, tcUpperCase, tcAsIs) ;

tcLowerCase -- преобразование к нижнему регистру;

tcUpperCase -- преобразование к верхнему регистру;

tcAsIs -- без преобразования. Метод

function ForceCase(const AString: string): string;

может использоваться для пребразования строки, передаваемой в параметре AString, в соответствии с текущим стилем свойства TTextCase.

 

Таймер

TObject-->TPersistent-->TCoinponent--^TTimer

Модуль EXTCTRLS

Страница Палитры компонентов System

Этот невизуальный компонент предназначен для уведомления программы об истечении определенных промежутков времени. Компонент инкапсулирует системный таймер Windows и работает через посылку сообщений WM_TIMER.

Свойство

(Pb) property Enabled: Boolean;

включает/выключает таймер, влияя на генерацию им событий. Будучи установлен в Enabled, таймер начинает генерировать события OnTimer через интервал времени

(РЬ| property Interval: Word;

который измеряется в миллисекундах. После каждого истечения такого интервала инициируется обработчик, связанный с событием:

(Pb) property OnTimer: TNotifyEvent;

При этом программист получает очередной квант времени.

При активизации и деактивизации таймера или изменении интервала в системе может не оказаться свободных таймеров. В этом случае генерируется исключительная ситуация EOutOfResources.

 

Работа со средствами мультимедиа

TObject->TPersistent->TComponenC-->TControl-"TWinControl->

-->TCustoinControl-"TMediaPlayer

Модуль MPLAYER

Страница Палитры компонентов System

Для управления устройствами мультимедиа в Windows предназначен интерфейс MCI (Media Control Interface). С каждым из таких устройств, как правило, поставляется специальный драйвер, который должен поддерживать некоторое подмножество определенных в MCI управляющих и информационных команд. Подробным образом интерфейс MCI рассмотрен в [З].

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

Под типом устройства мультимедиа подразумеваются как аппаратные, так и программные средства. В этом компоненте он представлен свойством:

(Pb) property DeviceType: TMPDeviceTypes;

TMPDeviceTypes = (dtAutoSelect, dtAVIVideo, dtCDAudio, dtDAT, dtDigitalVideo, dtMMMovie, dtOther, dtOverlay, dtScanner, dtSequencer, dtVCR, dtVideodisc, dtWaveAudio) ;

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

Набор возможностей устройства определяется свойством:

(Ro) property Capabilities: TMPDevCapsSet;

TMPDevCaps = (mpCanStep, mpCanEject, rripCanPlay, mpCanRecord, mpUsesWindow) ;

TMPDevCapsSet = set of TMPDevCaps;

mpCanStep -- устройство имеет пошаговый режим;

mpCanEject -- имеет возможность извлечения носителя;

mpCanPlay -- имеет режим воспроизведения;

mpCanRecord -- имеет режим записи;

mpUsesWindow -- устанавливается для устройств вывода видео, использующих окно.

В таблице приведены методы и свойства, обеспечивающие выполнение основных команд интерфейса MCI:

procedure Open;

Производит открытие устройства. Если свойство AutoOpen установлено в True, открытие осуществляется автоматически при создании объекта типа TMediaPlayer. Большинство остальных методов могут работать только с открытым устройством, так как используют полученный при открытии идентификатор DeviceID. Их вызов при неоткрытом устройстве приводит к генерации исключительной ситуации EMCIDeviceError. Если объект перед этим был связан с открытым устройством MCI, оно при этом закрывается.

 

 

Производит закрытие устройства.

procedure Play;

Включает режим воспроизведения (для устройств, имеющих опцию mpCanPlay в свойстве Capabilites).

procedure StartRecording;

Включает режим записи (для устройств, имеющих опцию mpCanRecord в свойстве Capabilites).

property StartPos: Longint; property EndPos: Longint;

Предназначены только для работы с методами Play и StartRecording. Определяют начало и конец фрагмента, который необходимо воспроизвести (или записать). После каждой операции (Play/StartRecording) свойства сбрасываются, и их нужно переустанавливать. Могут применяться как в паре, так и по отдельности. При установке этих свойств свойство Position не изменяется вплоть до начала операции. Если свойства не устанавливались, то воспроизведение и запись начинаются с текущей позиции данных (см. свойство Position).

(Pb) property AutoRewind: Boolean; procedure Rewind;

Если перед воспроизведением носитель данных находится в крайнем положении (и при этом не используются свойства StartPos и EndPos), то при свойстве AutoRewind, равном True, перед началом проводится перемотка в начальное положение (Rewind).

procedure Stop;

Останавливает работу в режиме воспроизведения или записи.

procedure Pause; procedure PauseOnly; procedure Resume;

Три метода предназначены для временной остановки (Pause, PauseOnly) и возобновления (Resume) работы в режимах воспроизведения/записи. Отличие Pause от PauseOnly в том, что происходит при втором вызове метода: если повторно вызвать Pause, то останов снимается (вызывается Resume), a если устройство остановлено посредством PauseOnly, то Resume нужно вызывать самому.


 

procedure Step; procedure Back;

Перемещают позицию данных вперед/назад на число кадров, равное значению свойства Frames (см. ниже). Методы имеют смысл только для устройств, поддерживающих покадровый режим (пока это только устройства видео).

procedure Next; procedure Previous;

Если данные на устройстве имеют дорожки, то эти методы перемещают текущую их позицию к началу следующей (предыдущей) дорожки. При вызове Next на последней дорожке или при вызове Previous на первой -- дорожка не меняется, происходит позиционирование к ее началу. Для устройств, не имеющих разбивки на дорожки, происходит перемещение к началу (концу) данных соответственно.

procedure Eject;

Извлекает носитель данных из устройства (например, компакт-диск). Действителен только для устройств с опцией mpCanEject).

procedure Save;

Для тех устройств, которые хранят информацию в файлах, сохраняет ее в файле с именем, содержащимся в свойстве FileName.

Каждая операция MCI возвращает код завершения. В случае необходимости проверки программист может получить и проанализировать его, используя два свойства:

(Ro) property Error: Longint;

Код ошибки, возвращаемый функцией MCI.

(Ro) property ErrorMessage: string;

Соответствующая этому коду строка-сообщение об ошибке. Если ее невозможно получить от драйвера MCI, возвращается сообщение о неизвестной ошибке.


 

Пользуясь свойством Mode, можно узнать текущее состояние устройства. Смысл режимов ясен из названий соответствующих констант:

(Ro) property Mode: TMPModes ;

TMPModes = (mpNotReady, mpStopped, mpPlaying, mpRecording, mpSeeking, mpPaused, mpOpen);

Следующие свойства дают информацию о характеристиках и состоянии устройства:

(Ro) property Start: Longint;

-- начальная позиция данных (если имеются дорожки -- позиция первой дорожки);

(Ro) property Length: Longint;

-- длина данных;

(Ro) property Position: Longint;

-- текущая позиция данных относительно начала (если имеются дорожки -- относительно начала текущей дорожки).

Эти три свойства зависят от носителя данных (например, от вставленного компакт-диска или загруженного файла AVI). Значение свойств, хотя и имеет тип Longint, представлено и должно интерпретироваться в зависимости от формата представления времени (свойство TimeFormat).

Если у устройства имеются дорожки (как, например, у аудиоплейера), то информацию о них можно получить через свойства:

(Pb) property Tracks: Longint;

-- число дорожек;

(Pb) property TrackLength[TrackNum: Integer]: Longint;

-- длина дорожки с номером TrackNum. По умолчанию используется формат времени tfMSF (см. ниже);

(Pb) property TrackPosition[TrackNum: Integer]: Longint;

-- начальное положение заданной дорожки.

Число кадров, на которое перемещается позиция устройства при шаге вперед/назад (операциях Step/Back), определяется свойством:

property Frames: Longint;

По умолчанию оно равно Length/10. Свойство

property Wait: Boolean;

устанавливает состояние ожидания окончания операции. Если оно установлено в True, функции MCI (Open, Play и т. п.) вернут управление только по завершении операции. В противном случае отследить конец операции можно, используя свойство:

property Notify: Boolean;

Если это свойство установлено в True, драйвер MCI посьшает медиаплейеру специальные извещения о завершении каждой операции. Результат операции присваивается свойству:

(Ro) property NotifyValue: TMPNotifyValues;

TMPNotifyValues = (nvSuccessful, nvSuperseded, nvAborted, nvFailure) ;

nvSuccessful -- успешное окончание;

nvSuperseded -- устройство получило еще одну команду, требующую извещения, и извещение от данной операции не будет получено;

nvAborted -- операция прервана;

nvFailure -- ошибка во время выполнения операции;

Программист также имеет возможность получить управление в этот момент, предусмотрев обработчик события:

(Pb) property OnNotify: TNotifyEvent;

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

ожидает конца операции и не посылает извещений (как если бы Wait=True и Notify = False).

Идентификатор устройства, получаемый им при открытии (вызове метода Open), равен значению свойства:

(Ro) property DeviceID: Word;

Он необходим, когда программист хочет сам вызвать функцию API mciSendCommand для выполнения действий, не предусмотренных методами данного класса. В качестве примера приведена функция, позволяющая узнать наличие носителя данных в устройстве (такая возможность в компоненте TMediaPlayer, к сожалению, отсутствует):

function TFormI.MediaPresent: boolean;

var StatusParm: TMCI_Status_Parms;

begin

StatusParm.dwItem := mci_Status_Media_Present;

inciSendCoimnand(MediaPlayerl. DeviceID, mci_Status, nici_Wait or mci_Status_Itein, Longint (QStatusParm) ) ;

Result := StatusParm.dwReturnoO;

end;

Перейдем к рассмотрению единиц измерения интервалов и форматам их представления. Их устанавливает свойство:

property TimeFormat: TMPTimeForinats;

TMPTirneFormats = (tfMilliseconds, tfHMS, tfMSF, tfFrames, tfSMPTE24, tfSMPTE25, tfSMPTE30, tfSMPTE30Drop, tfBytes, tfSamples, tfTMSF);

Такие свойства, как Length, Position и другие возвращают значения типа Longint. В зависимости от TimeFormat они могут быть проинтерпретированы как:

tfMilliseconds -- число миллисекунд;

tfHMS -- младший байт: часы/минуты/секунды. Старший байт не задействован;

tfMSF -- младший байт: минуты/секунды/кадры. Старший байт не задействован;

tfFrames -- число кадров;

tfSMPTE24, tfSMPTE25, tfSMPTE30, tfSMPTE30Drop -- младший байт:

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