Справочник по компонентам Delphi. Часть 3
Страница 16. Компонент TScreen



Компонент 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.

 
 
 
« Предыдущая статья   Следующая статья »