• Иллюстрированный самоучитель по Delphi 7 для профессионалов

    Интерфейс присоединения Drag-and-Dock

    Если вы хотите, чтобы ваша плавающая панель инструментов выглядела по – особенному, нужно породить потомка от класса TCustomDockForm и связать свойство FloatingDockSiteCiass с этим порожденным классом:

    TMyCustomFloatingForm = class(TCustomDockForm)
    public
    constructor Create(AOwner: TComponent);
    override;
    end;
    constructor TMyCustomFloatingForm.Create(AOwner: TComponent};
    begin
    inherited Create(AOwner);
    BorderStyle: = bsNone;
    end;
    procedure TForml.FormCreate(Sender: TObject);
    begin
    ToolBarl.FioatingDockSiteCiass: = TMyCustomFloatingForm;
    end;
    

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

    Переносить компоненты можно не только с помощью мыши, но и программно. Для этого есть пара методов ManualDock и ManualFioat. В приводимом ниже примере нажатие кнопки с именем BitBtn1 переносит форму custForm на док MainForm.Paneil и размещает ее по всей доступной площади (параметр выравнивания alclient). Нажатие кнопки BitBtn2 снимает эту форму с дока и выравнивает ее по центру экрана. В свойствах UndockHeight и undockwidth хранятся высота и ширина элемента управления на момент, предшествующий помещению на док:

    procedure TMainForm.BitBtnlClick(Sender: TObject);
    begin
    GustForm.ManualDock
    (MainForm.Pane11,nil,alClient);
    end;
    procedure TMainForm.BitBtn2Click(Sender: TObject);
    begin
    with CustForm do
    begin ManualFloat(Rect((Screen.Width-UndockWidth) div 2,
    (Screen.Height-UndockHeight) div 2, (Screen.Width+UndockWidth)
     div 2, (Screen.Height+UndockHeight) div 2));
    end;
    

    Иллюстрированный самоучитель по Delphi 7 для профессионалов › Стандартные технологии программирования › Интерфейс присоединения Drag-and-Dock
    Рис. 27.3. Плавающие панели инструментов без заголовка окна

    Полное рассмотрение внутреннего устройства механизмов Drag-and-Dock потребовало бы расширения объема этой главы. Тем, кто хочет использовать их на все 100%, рекомендуем обратиться к свойствам useDockManager и DockManager. Последнее представляет собой СОМ-интерфейс, позволяющий расширить возможности дока, вплоть до записи его состояния в поток (классTStream).

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.