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

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

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

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

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

componens.doc

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

procedure SelectAll;

выделяет весь текст в редакторе. Доступны также рабочие методы по чтению/записи выделенного текста, которые используются свойством SelText:

function GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer-procedure SetSelTextBuf(Buffer: PChar);

Они могут быть полезны для получения текста типа pChar, который применяется в функциях API Windows.

Текст можно передавать и принимать из буфера обмена Windows -- для этого предназначены три следующих метода. Если в окне редактора выделен текст, то передается (заменяется) именно он. В противном случае в операции участвует весь текст:

procedure CopyToClipboard;

procedure CutToClipboard;

procedure PasteFromClipboard;

Очистить весь текст в редакторе можно при помощи метода:

procedure Clear;

Наконец, свойство

property Modified: Boolean;

устанавливает, изменялся ли текст в процессе редактирования.

 

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

 

Компонент ТМеmo

TObject->TPersistent->TComponent->TControl->TWinControl->TCustomEdit->

--"TCu s t omMerno-"TMemo

Модуль STDCTRLS

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

Компонент представляет собой многострочный редактор текста. Содержимое редактора представлено как объект, содержащий текст в виде набора строк:

(Pb) property Lines: TStrings;

Текст в редакторе может выравниваться по левому, правому краям и по центру:

(Р1э) property Alignment: TAlignment;

TAlignment = (taLeftJustify, taRightJustify, taCenter) ;

При наборе текста пользователь может ввести различные управляющие символы, в частности, клавишами <Enter> и <ТаЬ>. Эти символы могут быть обработаны редактором, а могут быть сразу переданы форме. В случае, если свойства

§ property WantReturns: Boolean;

property WantTabs: Boolean;

обращены в True, символы передаются редактору. Обратим внимание на то, что если установлено WantTabs, то с помощью клавиатуры передать фокус такому редактору можно, а после этого отдать другому компоненту -- нельзя. Если свойства равны False, символы передаются форме. В этом случае для ввода этих символов в редактор можно воспользоваться комбинациями <Ctrl>+<Enter> и <Ctrl>+<Tab> соответственно.

Два свойства отвечают за организацию прокрутки текста в окне редактора:

(Pb) property Wordwrap: Boolean ;

-- отвечает за поведение редактора при достижении правой границы во время набора текста. Если свойство равно True, то при этом происходит переход на новую строку. В случае False при достижении правой границы происходит горизонтальная прокрутка текста и пользователь может продолжать набор; на новую строку можно перейти, нажав <Enter>;

(Pb) property ScrollBars: TScrollStyle;

TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth) ;

-- устанавливает наличие полос прокрутки в вертикальном и горизонтальном направлениях. Если есть горизонтальная полоса, то свойство Wordwrap теряет смысл: вместо переноса происходит прокрутка.

Следующие свойства аналогичны определенным в TEdit -- BorderStyle, HideSelection, MaxLength, OEMConvert и ReadOnly.

Для получения полноценного приложения -- текстового редактора, в него нужно включить компонент TMemo и снабдить средствами чтения, записи и печати файлов, поиска и замены текста и т. п. Такой редактор вы найдете в примере DEMOEDIT на дискете, прилагаемой к книге.

 

Компонент TMaskEdit

TObject->TPersistent->TComponent->TControl--"TWinControl->TCustomEdit-> -->TCustomMaskEdit--^TMaskEdit Модуль MASK Страница Палитры компонентов Additional

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

Шаблон ввода в виде строки содержится в свойстве:

(РЬ) property EditMask: string;

Если он не определен, TMaskEdit работает как обычный редактор. Свойство

(Ro) property IsMasked: Boolean;

показывает, определен ли шаблон редактирования (значение EditMask не равно пустой строке).

"Черновой" текст, содержащий введенные пользователем символы, соответствует свойству:

property EditText: string;

В то же время отформатированный (наложенный на шаблон) текст содержится в свойстве Text.

Опишем правила, применяемые при составлении шаблона. Шаблон состоит из трех частей, разделяемых символом ';' или другим, заменяющим его. Первая часть является обязательной -- она определяет собственно маску ввода. Каждому символу в поле ввода редактора соответствует специальный символ в маске, определяющий, что можно ввести на этом месте.

Описатели маски ввода представлены в таблице:

Символ маски

Означает, что на этом месте во вводимом тексте...

L

должна быть буква (A-Z, a-z, А-Я, а-я).

I

может быть буква.

А

должен быть буквенно-цнфровой символ.

а

может быть буквенно-цифровой символ.

С

должен быть любой символ ASCII.

с

может быть любой символ ASCII.

0

должна быть любая цифра.

9

может быть любая цифра.

#

может быть любая цифра или знаки '+', *-'.


 

"Должен" означает, что пользователь обязан ввести в поле соответствующий символ, "может" -- что не обязан. Например, шаблон "LLOO" обязывает пользователя ввести пароль из двух букв и двух цифр, a "LL99" -- из двух букв и не более двух цифр.

Кроме описателей полей ввода, в шаблоне могут быть литералы и другие форматирующие символы.

Литералами будем называть символы, которые появляются при отображении строки ввода, но не могут изменяться пользователем и предназначены только для ее оформления. Перед литералом должен стоять символ 'V. Типичный пример -- ввод телефонных номеров. Для семизначного номера с возможностью ввода междугороднего кода нужен шаблон "!\(999\)000-0000;1;_". Тогда код города (если он есть) в отформатированном тексте будет заключен в скобки.

Специальные символы приведены в следующей таблице:

Символ

Значение

\

Символ, непосредственно предшествующий литералу.

 

 

Разделитель для часов, минут и секунд при вводе времени.

/

Разделитель для дней, месяцев и лет при вводе даты.

\

Разделитель полей в маске.

'

Символ определяет подавление пробелов: если он есть в маске (в любом месте), в выходном тексте подавляются пробелы перед текстом; в противном случае -- идущие после текста.

>

Символ, после которого все вводимые буквы преобразуются к верхнему регистру.

<

Символ, после которого все вводимые буквы преобразуются к нижнему регистру.

о

После этой пары символов преобразование регистров отменяется.

-

Пустое поле при вводе (отображается как пробел). Курсор не будет останавливаться в этой позиции.


 

Вторая часть шаблона -- это символ '0' или '!', определяющий, записываются ли литералы в обработанный текст (свойство Text). При 0 символы опускаются. Использование такого компонента при работе с базами данных дает возможность экономии места.

Например, пользователь ввел цифры 1234567. Тогда при действующем шаблоне "999\-99\-00;1;_" свойство Text будет равно "123-45-67", а для шаблона "999\-99\-00;0;_" - "1234567".

Третья часть содержит символ, который будет показываться в полях, предназначенных для ввода. Например, шаблон для ввода номеров машин "L 00\-00 LL;1;X" будет выглядеть как "X ХХ-ХХ XX". По умолчанию этот символ определяется значением константы DefaultBlank(cM. ниже).

Вторая и третья части шаблона могут отсутствовать.

Синтаксис шаблона может быть изменен за счет переопределения программистом специальных символов '_'> ';' и '0'. Для этого нужно изменить определенные в модуле Mask константы:

const

DefaultBlank: Char = '_';

MaskFieldSeparator: Char = ';';

MaskNoSave: Char = '0';

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

Непосредственную проверку введенного текста осуществляет метод:

procedure ValidateEdit;

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

Метод

function GetTextLen: Integer;

возвращает длину текста Text.

 

Функции для форматирования текста

Форматирование текста можно осуществить и без объекта класса TMaskEdit, при помощи описанных в модуле MASK функций:

function FormatMaskText(const EditMask: string;

const Value: string): string;

-- осуществляет форматирование строки Value по шаблону EditMask;

function MaskGetMaskSave(const EditMask: string): Boolean;

-- возвращает значение True, если в обработанном тексте должны сохраняться литералы (соответствует значению второй части шаблона);

function MaskGetMaskBlank(const EditMask: string): Char;

-- возвращает символ, который будет использоваться в шаблоне для заполнения (третья часть шаблона);

function MaskGetFldSeparator(const EditMask: string): Integer;

-- возвращает положение разделителя, отделяющего первую часть шаблона от последующих. Если он отсутствует, функция возвращает значение -1.

 

Оформление приложения

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

 

Компонент TPaintBox

TObject->TPersistent-"TCornponent-"TControl--"-TGraphicControl--"TPaintBox

Модуль EXTCTRLS

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

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

(Ro) property Canvas: TCanvas;

Помимо канвы, компонент имеет свой цвет (фона)

(Pb) property Color: TColor;

и шрифт:

(Pb) property Font: TFont;

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

(Р1э) property OnPaint: TNotifyEvent;

Компонент TShape

TObject->TPersistent-"TComponent-->TControl->TGraphicControl-->TShape

Модуль EXTCTRLS

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

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

(Pb) property Shape: TShapeType;

Рисуемая фигура -- одна из предопределенных в множестве:

TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle) ;

Размеры фигуры соответствуют размерам компонента. Если задан квадрат или круг, а ширина и высота компонента не равны между собой, то сторона или диаметр фигуры будут равны длине меньшей стороны компонента.

Кисть и перо, которыми рисуется и закрашивается фигура, представлены свойствами:

(Pk) property Brush: TBrush;

(Р1э) property Pen: TPen;

Метод, исполняемый при изменении фигуры, кисти или пера

procedure StyleChangedfSender: TObject);

выполняет перерисовку компонента.

 

Компонент TBevel

TObject-"TPersistent-"TComponent-"TControl-"TGraphicControl->TBevel

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