Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Pascal и Delphi / Иллюстрированный самоучитель по Delphi 6 / Часть III. Компоненты и программы / Общие свойства компонентов /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Имена и собственники компонентов - Программирование от RIN.RU
Имена и собственники компонентов

Класс TComponent включает в себя свойства и методы, общие для всех компонентов.


Свойство


property Name: TComponentName;
type TComponentName = String; // Delphi 32
type TComponentName = String[63]; // Delphi 1


определяет имя компонента. Имя компонента строится по тем же правилам, что и имена любых других объектов программирования - констант, переменных, подпрограмм и т. д.: оно представляет собой правильный идентификатор и должно быть уникальным в области своей видимости в программе. Так как компоненты помещаются на форму средой Delphi, каждый компонент автоматически получает создаваемое средой имя, совпадающее с именем своего класса (без начальной буквы Т) и дополненное числовым суффиксом: Form1, Labell2, RichEdit2 И Т. Д.


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


Например fm - для формы TForm, ib - для метки TLabel, ed - для редактора TEdit и т. п. Комбинируя префикс с мнемоническим именем, можно существенно улучшить читаемость программы и усилить контроль за правильным использованием свойств и методов компонента.


Например, оператор


IbOutput.Text := 'Текст';


сразу вызовет подозрение, т. к. префикс ib определяет компонент TLabel, который не имеет свойства или поля с именем Text. Свойство


property Tag: Integer;


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


Любой компонент Delphi является собственностью другого компонента и, в свою очередь, может быть владельцем одного или нескольких компонентов. Такая зависимость компонентов друг от друга позволяет существенно упростить процесс управления ими. Например, чтобы уничтожить окно с включенными в него компонентами, достаточно вызвать деструктор окна: он поочередно вызовет деструкторы всех других компонентов, владельцем которого является компонент-окно, и таким образом полностью освободит выделенные окну ресурсы. Свойство


property Owner: TComponent;


у казывает на владельца компонента (это свойство доступно только для чтения), а свойство


property Componentlndex: Integer;


на положение компонента в массиве components своего владельца. Этот массив определяется свойством


property Components[Index: Integer]: TComponent;


и содержит список всех компонентов, которыми владеет данный компонент. Количество зарегистрированных в списке компонентов возвращает свойство


property ComponentCount: Integer;


Конструктор TComponet. Create имеет единственный параметр обращения:


constructor Create(AOwner: TComponent);


в котором компоненту передается ссылка на его владельца. В ходе выполнения конструктора компонент вставляет ссылку на себя в список Components своего владельца и изменяет содержимое собственного свойства Owner.


Для управления списком components предназначены следующие методы:


procedure DestroyComponents; Вызывает поочередно деструкторы всех компонентов из списка Components и удаляет все компоненты из списка
function FindComponent(constName: String): TComponent; Отыскивает в списке компонент с именем AName и возвращает ссылку на него
procedure insertComponent AComponent: TComponent); Вставляет компонент AComponent в конец списка Components
procedure RemoveComponent AComponent: TComponent); Удаляет компонент AComponent из списка



 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь