Родительские и дочерние компоненты — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Родительские и дочерние компоненты

2018-01-04 376
Родительские и дочерние компоненты 0.00 из 5.00 0 оценок
Заказать работу

Наследники класса TControl образуют всю палитру видимых компонентов Delphi. В терминах Windows они называются элементами управления.

Некоторые из наследников TControl обладают дескрипторами окон, специальными идентификаторами, которые Windows присваивает всем объектам, обладающим свойствами окна. Такие элементы управления обладает свойствами окна, то он должен уметь принимать и обрабатывать сообщения Windows, то есть выполнять следующие операции:

· получать и передавать фокус управления во время выполнения приложения;

· воспринимать управляющие воздействия от мыши и клавиатуры;

· уметь размещать на себе другие элементы управления.

Такие компоненты называют оконными элементами управления. Эти компоненты являются наследниками класса TWinControl, непосредственно следующего за TControl.

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

Класс TControl определяет для каждого видимого компонента свойство

Parent, которое содержит ссылку на его родительский компонент, property Parent: TWinControl read FParent write SetParent;

Таким образом, владелец (Owner) создает компонент (не обязательно видимый), а родитель (Parent) управляет видимым компонентом. Поскольку конструктор TComponent. Create не изменяет свойства Parent, то при создании видимых компонентов это свойство необходимо изменять программно. Например:

vax lbText: TLabel;

Procedure TForml.FormCreate(Sender: TObject); begin

lbText:= TLabel.Create (Self); lbText.Parent:«Self; lbText.Caption:» 'Label'; end;

Если убрать оператор lbText. Parent: =Self; метка не получит сообще­ние Windows о том, что надо прорисовать себя на экране и ее текст не появится. В классе TWinControl (для каждого оконного компонента) описаны:

свойство Controls, содержащее список дочерних компонентов.

property Controls[Index: Integer]: TControl road GetControl; свойство ControlCount возвращает количество дочерних элементов

property ControlCount: Integer read GetControlCount; а также методы для работы со списком Controls (табл. 4.16).

Таблиц а 4.16

function ContainsControl (Control: TControl): Возвращаетtrue, если компонентcontrolявляется дочерним элементом
function ControlAtPos(Const Роз: TPoint; AllowOisabled: Boolean; AllowWinControls: Boolean «False): TControl; Возвращает ссылку на компонент, которому принадлежит точка с координатамиPos. Если AllowDisable=true, поиск ведется и среди запрещенных для выбора компонентов
function FindNextControl (CurControl: TWinControl; GoForward, CheckTabStop, CbecJcParenfe: Boolean): TWinControl; Ищет новый элемент в спискеControls. CurControl определяет начальную позицию поиска; приGoForward=true поиск ведется от начальной позиции к концу списка, при CheckTabStop= true поиск ведется только среди компонентов со свойствомTabStopравнымtrue; приCheckParent=trueпоиск ведется только среди оконных элементов
procedure GetTabOrderList (List: TList); dynamic; Создает списокList всех дочерних элементов в порядке их обхода поTab
procedure NotifyControls (Msg: Word); Посылает сообщениеMsg во все дочерние оконные компоненты

 

C 1 по 3 папка 3


 

 
(DC: HDC; First: TControl); , < лочерний ™o™  
  feSSTrr--
override; п -1—--------- с- icjlbucoro KOMll<.Hf.[rrn  
, riUv.ouiira scaJ.eControls (M, D: Integer); procedure Selects'!. ---- размерами, измененнымив M/D™no ^авнершюспредыд^цими разменами
procedure SelectNnvt -----  
(CurControl: TWinControl• GoForward, CheckTabStop•' Boolean) обхода по Tab. Значение параметров по2
(Child: TComponent; Order- integer); override • компонента Child
(AControl: TControl)- 1 virtual; --

§4.5. Положение, размеры и оформление компонент

Размеры компонентов

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

property Height: Integer read FHeight write SetHeight; property Left: Integer read FLeft write SetLeft; property Top: Integer read FTop write SetTop; property Width: Integer read FWidth write SetWidth;

Для всех компонентов, кроме форм, эти свойства задаются в координатах клиентской части родительского компонента (внутренней области за исключением заголовка, рамки и меню). Для форм они определяются в координатах экрана. Чтобы пересчитать относительные координаты в координаты экрана и наоборот можно использовать два метода TControl. function ClientToScreen(const Point: TPoint): TPoint; function ScreenToClient(const Point: TPoint): TPoint;

В класс TControl введено свойство Constraints, которое используется для ограничения размеров элементов управления по высоте и ширине: property Constraints: TSizeConstraints;

где объект класса TSizeConstraints имеет четыре свойства: MaxHeight, MaxWidth, MinHeight, MinWidth типа 0..Maxlnt

Видимость и доступность

С помощью свойства Visible любой видимый компонент можно скрыть (false) или показать (true). Скрытый компонент не реагирует на события мыши и клавиатуры, ему нельзя передать фокус ввода по Tab. property Visible: Boolean read FVisible write SetVioible

stored IsVisibleStored default True; Аналогичные действия выполняют методы Hide и Show, описанные в классе TControl. procedure Hide; procedure Show;

Расположнть компонент перед всеми другими или наоборот после всех остальных можно методами, procedure BringToFront; procedure SendToBack;

Свойство Enabled определяет возможность активизации компонента. Если это свойство равно True, компонент недоступен и отображается серым цветом, property Enabled: Boolean read GetEnabled write SetEnabled

stored IsEnabledStored default True; Положение компонента Свойство Align определяет положение компонента относительно границ своего родителя:

property Align: TAlign read FAlign write SetAlign default alNone; TAlign = (alNone,alTop,alBottom,alLeft,alRight,alClient,alCustom);

Временное отключение и включение эффекта от свойства Align обеспечивается методами, описанными в классе TWinControl:

procedure DisablaAlign; procadure EnableAlign;

В класс TControl введено свойство, определяющее способ фиксирования дочернего компонента относительно границ контейнера, в котором он размещен:

ТAnchors = set of TAnchorKind;

TAnchorKind = (akTop, akLeft, akRight, akBottom); property Anchors: TAnchors;

По умолчанию это свойство имеет значение [akTop, akLeft], что означает фиксацию компонента относительно левого верхнего угла контейнера.

Внешний вид компонента Видимая часть элемента заливается цветом, определенным свойством Color: property Color: TColor;

Обычно значение этого свойства выбирается из таблицы стандартных цветов Windows в виде константы clXXXX. Можно также выбрать нестандартный цвет.

С каждым управляющим компонентом связывается текстовая строка, которая становится доступна либо через свойство Caption, либо через свойство Text. Независимо от того, какое свойство хранит эту строку, ее можно установить и получить соответственно методами SetTextBuf и GetTextBuf. function GetTextBuf(Buffer: PChar; BufSize: Integer): Integer; procedure SetTextBuf(Buffer: PChar);

 

 


 

 

Метод GetTextLen возвращает длину строки: function GetTextLen: Integer;

Если эта строка прорисовывается в компоненте, используется шрифт, задаваемый свойством Font.

property Font: TFont read FFont write SetFont stored IsFontStored;

В этом случае свойство Alignment (TCustomLabel) регулирует расположение текста относительно границ компонента:

TAlignment = (taLeftJustify, taRightJustify, taCenter); property Alignment: TAlignment read FAlignment write SetAlignment

default taLeftJustify; Свойство DesktopFont установленное в true заставит компонент выводить текст системным шрифтом Windows.

Некоторые компоненты всегда имеют плоское представление, например TLabel, другие - всегда объемное, например, TButton. Для остальных имеется возможность регулировать представление через свойство Ctl3d, описанное в классе TWinControl.


Поделиться с друзьями:

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.