Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СВП ЭДИК.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
73.15 Кб
Скачать

2.Описание использованных компонентов

2.1Компонент tEdit

TObject-^TPersistent^TComponent-”TControl->TWinControl-”TCustomEdit-”TEdit

Модуль STDCTRLS

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

Этот компонент не содержит собственного кода, в нем только опубликованы свойства его предка TCustomEdit. Он представляет собой редактируемую стро­ку (далее — просто редактор).

Стиль обрамления этого компонента

(Pb) property BorderStyle: TBorderStyle;

по умолчанию равен bsSingle.

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

(Pb) property AutoSize: Boolean;

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

Вводимый в редактор текст может автоматически подвергаться некоторым преобразованиям.

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

(Pb) property CharCase: TEditCharCase;

TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase) ;

По умолчанию установлен стиль ecNormal и преобразования не происходит. Аналогично, свойство

(Pb) property OEMConvert: Boolean;

определяет необходимость автоматического преобразования вводимых симво­лов из кодировки OEM в ANSI и обратно. Такое свойство часто бывает нужно при обработке текста в кодировке MS-DOS.

Два следующих свойства описывают поведение выделенного текста при пере­ходе фокуса. Первое из них

(Pb) property AutoSelect: Boolean;

описывает реакцию редактирующего элемента при получении фокуса. Если оно установлено в True (по умолчанию это так), то при получении фокуса ввода весь текст в нем выделяется независимо от состояния свойства SelText. Если AutoSelect установлено в False, то при получении фокуса выделяется лишь то, что было выделено до его утери.

После утери фокуса редактором выделенный в нем текст обычно теряет цве­товое выделение. Чтобы оно оставалось, установите в False второе свойство:

(Pb) property HideSelection: Boolean;

На длину текста может быть наложено ограничение. Свойство

(Pb) property MaxLength: Integer;

определяет максимальную длину текста редактора в символах. Если значение этого свойства равно 0, то ограничений на длину текста нет.

Свойство PasswordChar предназначено для ввода пароля с использованием редактора:

(Pb) property PasswordChar: Char;

Его значение — это символ, используемый для отображения вместо любых вводимых символов.

Можно запретить возможность редактирования текста. Если значение свойства:

(Pb) property Readonly: Boolean;

равно True, текст изменить нельзя.

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

(Pb) property OnChange: TNotifyEvent;

2.2 Компонент tTimer

Компонент Timer позволяет задавать в приложении интервалы времени. Таймер находит многочисленные применения: синхронизация мультипликации, закрытие каких-то окон, с которыми пользователь долгое время не работает, включение хранителя экрана или закрытие связей с удаленным сервером при отсутствии действий пользователя, регулярный опрос каких-то источников информации, задание времени на ответ в обучающих программах — все это множество задач, в которых требуется задавать интервалы времени, решается с помощью таймера.

Таймер — невизуальный компонент, который может размещаться в любом месте формы. Он имеет два свойства, позволяющие им управлять: Interval — интервал времени в миллисекундах и Enabled — доступность. Свойство Interval задает период срабатывания таймера. Через заданный интервал времени после предыдущего срабатывания, или после программной установки свойства Interval, или после запуска приложения, если значение Interval установлено во время проектирования, таймер срабатывает, вызывая событие OnTimer. В обработчике этого события записываются необходимые операции. Этот компонент служит для отсчёта интервалов реального времени. Имеет ограничение - не может обрабатывать интервалы менее 55 миллисекунд.

Если задать Interval = 0 или Enabled = false, то таймер перестает работать. Чтобы запустить отсчет времени надо или задать Enabled = true, если установлено положительное значение Interval, или задать положительное значение Interval, если Enabled = true.

Например, если требуется, чтобы через 5 секунд после запуска приложения закрылась форма — заставка, отображающая логотип приложения, на ней надо разместить таймер, задать в нем интервал Interval = 5000, а в обработчик события OnTimer вставить оператор Close, закрывающий окно формы.

Если необходимо в некоторой процедуре запустить таймер, который отсчитал бы заданный интервал, например, 5 секунд, после чего надо выполнить некоторые операции и отключить таймер, это можно сделать следующим образом. При проектировании таймер делается доступным (Enabled = true), но свойство Interval задается равным 0. Таймер не будет работать, пока в момент, когда нужно запустить таймер, не выполнится оператор

Timer1.Interval := 5000;

Через 5 секунд после этого наступит событие OnTimer. В его обработчике надо задать оператор

Timer1.Interval := 0;

который отключит таймер, после чего можно выполнять требуемые операции.

Другой эквивалентный способ решения задачи — использование свойства Enabled. В время проектирования задается значение Interval = 5000 и значение Enabled = false. В момент, когда надо запустить таймер выполняется оператор

Timer1.Enabled := true;

В обработчик события OnTimer, которое наступит через 5 секунд после запуска таймера, можно вставить оператор

Timer1.Enabled:=false;

который отключит таймер.

Таймер точно выдерживает заданные интервалы Interval, если они достаточно велики — сотни и тысячи миллисекунд. Если же задавать интервалы длительностью десятки или единицы миллисекунд, то реальные интервалы времени оказываются заметно больше вследствие различных накладных расходов, связанных с вызовами функций и иными вычислительными аспектами.