Программирование в Delphi. Барков И.А - 16 стр.

UptoLike

Составители: 

16
(Pb) property Align: TAlign;
Оно определяет выравнивание компонента относительно границ родителя. Может принимать
одно из предопределенных значений:
TAlign = (aiNone, alTop, alBottom, alLeft, alRight, alClient);
aINone — выравнивание отсутствует;
alTop, alBottom, alLeft, alRight — выравнивание происходит по соответствующей стороне роди-
теля;
alClient — компонент занимает все пространство клиентской области родителя.
Выравнивание гарантирует, что при изменении размеров родителя относительная позиция до-
чернего элемента не меняется. Это свойство имеет приоритет над
простым изменением положения и
размеров. Если новые координаты элемента противоречат способу его выравнивания (например, пере-
мещение вверх при alBottom), изменения отвергаются и элемент возвращается к первоначальным коор-
динатам. Свойство Align незаменимо при организации панелей инструментов и строк состоянияони
могут перемещаться и видоизменяться вместе с содержащей их формой. Для временного отключения
действия
свойства Align предназначены методы:
procedure DisableAlign;
procedure EnableAlign;
Эти методы управляют возможностью выравнивания потомков данного эле-мекга, они должны
вызьшаться в паре. Для восстановления выравнивания элементов в соответствии с Align есть метод:
procedure Realign;
В следующем примере использование методов DisableAlign и EnableAlign позволяет настроить
выравнивание панели по тому краю формы, на который пользователь перетащит ее мышью:
procedure TFormI.FormCreate(Sender: TObject);
begin
Panell.Align := alBottom;
Moving := False;
end;
procedure TFormI.PanellMouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
if not Moving then
begin
Formi.DisableAlign;
Moving := True;
end;
end;
procedure TFonnl.PanellMouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integers);
begin
if Moving then with Panell do
begin
Left := Left + X - Width div 2;
Top := Top + Y - Height div 2;
Panell.Caption := Format('%d,%d',[Left,Top]);
end;
end;
procedure TFormI.PanellMouseUp(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y:
Integer);
var LastPos : TPoint; rO, rl, r2 : real;
begin
if Moving then
begin
Moving := False;
                (Pb) property Align: TAlign;
        Оно определяет выравнивание компонента относительно границ родителя. Может принимать
одно из предопределенных значений:
        TAlign = (aiNone, alTop, alBottom, alLeft, alRight, alClient);
        aINone — выравнивание отсутствует;
        alTop, alBottom, alLeft, alRight — выравнивание происходит по соответствующей стороне роди-
теля;
        alClient — компонент занимает все пространство клиентской области родителя.
        Выравнивание гарантирует, что при изменении размеров родителя относительная позиция до-
чернего элемента не меняется. Это свойство имеет приоритет над простым изменением положения и
размеров. Если новые координаты элемента противоречат способу его выравнивания (например, пере-
мещение вверх при alBottom), изменения отвергаются и элемент возвращается к первоначальным коор-
динатам. Свойство Align незаменимо при организации панелей инструментов и строк состояния — они
могут перемещаться и видоизменяться вместе с содержащей их формой. Для временного отключения
действия свойства Align предназначены методы:
                procedure DisableAlign;
                procedure EnableAlign;
        Эти методы управляют возможностью выравнивания потомков данного эле-мекга, они должны
вызьшаться в паре. Для восстановления выравнивания элементов в соответствии с Align есть метод:
                procedure Realign;
        В следующем примере использование методов DisableAlign и EnableAlign позволяет настроить
выравнивание панели по тому краю формы, на который пользователь перетащит ее мышью:
        procedure TFormI.FormCreate(Sender: TObject);
        begin
                Panell.Align := alBottom;
                Moving := False;
        end;
        procedure TFormI.PanellMouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X,
        Y:      Integer);
        begin
                if not Moving then
                begin
                        Formi.DisableAlign;
                        Moving := True;
                end;
        end;
        procedure TFonnl.PanellMouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integers);
        begin
                if Moving then with Panell do
                begin
                        Left := Left + X - Width div 2;
                        Top := Top + Y - Height div 2;
                        Panell.Caption := Format('%d,%d',[Left,Top]);
                end;
        end;
        procedure TFormI.PanellMouseUp(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y:
Integer);
        var LastPos : TPoint; rO, rl, r2 : real;
        begin
                if Moving then
                begin
                        Moving := False;


                                                 16