Справочник по компонентам Delphi. Часть 3 - Компонент 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. Два (доступных только для чтения) свойства дают информацию об этом списке:

 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 ReadString(const Section, Ident, Default: string): string;

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

procedure WriteString(const Section, Ident, Default: string); Записывает (или перезаписывает) в секцию Section строку Ident=Value.
function Readlnteger(const Section, Ident: string; Default: Longint): Longint; Возвращает значение параметра Ident из секции Section, преобразованное в целое число. В случае любых ошибок возвра­щается значение Default.
 function ReadBool(const Section, Ident: string; Default: Boolean): Boolean;Работает как Readlnteger, но преобразует значение параметра в булеву переменную.
 procedure Writelnteger(const Section, Ident: string; Value: Longint); Преобразует Value в строку и записывает его в качестве значения Ident в секции Section.
 procedure WriteBool(const Section, Ident: string; Value: Boolean); Работает, как Writelnteger, но преобразует булево значение Value к виду '0'/"Г.
 procedure ReadSection(const Section: string; Strings: TStrings) ; Считывает в набор строк Strings секцию с именем Section. Максимальная длина секции — 8191 байт.

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

Считывает из секции Section в набор строк Strings только значения параметров.
 procedure EraseSection(const Section: string);  Удаляет всю секцию с именем Section.