Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.docx
Скачиваний:
2
Добавлен:
23.04.2019
Размер:
210.36 Кб
Скачать

33. Общие свойства компонентов: положение, размеры и оформление компонент.

Размеры компонентов определяются следующими четырьмя свойствами, описанными в классе 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.

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

Property Constraints: TSizeConstraints;

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

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

Аналогичные действия выполняют методы Hide и Show, описанные в классе TControl:(procedure Hide; и procedure Show;).

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

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

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

property Align: TAlign read FAlign write SetAlign default alNone;

TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom);

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

procedure DisableAlign;

procedure EnableAlign;

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

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

С каждым управляющим компонентом связывается текстовая строка, которая становится доступна либо через свойство Caption, либо через свойство Text. Независимо от того, какое свойство хранит эту строку, ее можно установить и получить соответственно методами SetTextBuf и GetTextBuf.

Метод 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, другие — всегда объемное, например, для остальных имеется возможность регулировать представление через свойство Ctl3d, описанное в классе TWinControl.

Свойства, позволяющие очерчивать оконные компоненты внутренней и внешней рамкой, описаны в TWinControl. Свойство BevelEdges определяет очерчиваемые грани. Очерчиваются только те грани, которые содержатся во множестве TBevelEdges.

Тип BevelCut определяет эффект объемности для соответствующей рамки:

bvNone — нет объемности, bvLowered — вдавленная рамка, bvRaised — выпуклая рамка, bvSpace — рамка белая, если свойство BevelKind не содержит bkTile, иначе — выпуклая.

Свойство BevelKind определяет стиль рамок: bkNone— рамок нет, bkTile — контрастные (черные), bkSoft — рамки пониженной контрастности, bkFlat — рамки не контрастные (белые).

TBevelKind = (bkNone, bkTile, bkSoft, bkFlat);

property BevelKind: TBevelKind read FBevelKind write SetBevelKind default bkNone;

Свойство BevelWidth определяет толщину рамки.

TBevelWidth = 1..MaxInt;

property BevelWidth: TBevelWidth read FBevelWidth write SetBevelWidth default 1;

Наследование свойств

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

property ParentColor: Boolean read FParentColor write SetParentColor default True;

property ParentCtl3D: Boolean read FParentCtl3D write SetParentCtl3D default True;

property ParentFont: Boolean read FParentFont write SetParentFont default True;

property ParentShowHint: Boolean read FParentShowHint write SetParentShowHint default True;

Если, например, цвет компонента не задан явно свойством Color и его свойство ParentColor имеет значение True, компонент будет использовать при прорисовке свойство Color своего родителя.

34. Указатели мыши. События мыши. События мышиДля большинства видимых компонентов определен следующий набор обработчиков событий, связанных с мышью: обработчики событий OnMouseDown и OnMouseUp определяют реакцию программы на нажатие и отпускание кнопки мыши, OnMouseMove — на перемещение указателя мыши над компонентом, OnClick и OnDblClick — соответственно щелчок и двойной щелчок левой кнопкой мыши. Во всех обработчиках параметрSender содержит ссылку на компонент, над которым находился курсор мыши, когда произошло событие, X,Y — координаты указателя в системе координат клиентской области родительского компонента. Событие OnClick возникает после события OnMouseDown но перед событием OnMouseUp, а событие OnDoubleClick - после события OnMouseUp.

type

TMouseButton = (mbLeft, mbRight, mbMiddle);

TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);

TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState;

X, Y: Integer) of object;

TMouseMoveEvent = procedure (Sender: TObject; Shift: TShiftState; X, Y: Integer) of

object;

property OnMouseDown: TMouseEvent read FOnMouseDown write FOnMouseDown;

property OnMouseMove: TMouseMoveEvent read FOnMouseMove write

FOnMouseMove;

property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;

property OnClick: TNotifyEvent read FOnClick write FOnClick stored

IsOnClickStored;

property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;

TMouseWheelEvent = procedure (Sender: TObject; Shift: TShiftState; WheelDelta:

Integer; MousePos: TPoint; var Handled: Boolean) of object;

TMouseWheelUpDownEvent = procedure (Sender: TObject; Shift: TShiftState;

MousePos: TPoint; var Handled: Boolean) of object;

property OnMouseWheel: TMouseWheelEvent read FOnMouseWheel write

FOnMouseWheel;

property OnMouseWheelDown: TMouseWheelUpDownEvent read

FOnMouseWheelDown write FOnMouseWheelDown;

property OnMouseWheelUp: TMouseWheelUpDownEvent read FOnMouseWheelUp

write FOnMouseWheelUp;

Тип TMouseButton определяет одну из трех кнопок мыши: левую (mbLeft), правую (mbRight) и среднюю (mbMiddle).

Тип TShiftState содержит признаки, уточняющие обстоятельства возникновения события: ssShift — нажата клавиша Shift, ssAlt — нажата клавиша Alt, ssCtrl — нажата клавиша Ctrl, ssLeft— нажата левая клавиша мыши, ssRight - нажата правая клавиша мыши, ssMiddle - нажата средняя клавиша мыши, ssDouble — нажаты одновременно левая и правая клавиши мыши.

Указатели мышиПри перемещении указателя мыши по экрану он может менять свою форму в зависимости от значения свойства Cursor компонента, над которым он расположен в данный момент:

TCursor = -32768..+32767;

property Cursor: TCursor;

Индекс курсора может быть любым числом от -32768 до 32767. Индексы в диапазоне от -22 до -1 включительно заняты стандартными указателями, причем индексы -5 и -1 соответствуют указателю crNone, а индекс 0 всегда связан со стандартным указателем Windows и не может переопределяться.

Чтобы изменить форму курсора для всех окон программы одновременно, используется свойство Cursor глобального объекта Screen, который автоматически создается для каждой программы:

Screen. Cursor := crHourGlass; // Курсор – песочные часы

Screen. Cursor := crDefault; // Курсор - обычный

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

1. С помощью редактора изображений Delphi необходимо создать изображение указателя и сохранить это изображение в ресурсном файле. Имя указателя должно быть обязательно из латинских прописных символов.

2. Необходимо директивой подключить полученный ресурсный файл к программе и загрузить указатель из ресурсного файла с помощью функции LoadCursor.

{$R Cursor.res}

Screen.Cursors [1] := LoadCursor (HInstance, ‘NEWCURSOR’);

3. После выполнения предыдущих операций можно назначать нестандартный указатель свойствам Cursor компонентов или экрана: Screen.Cursor := 1.