Одно из интересных новшеств Delphi 10.4 Sydney – это возможность настраивать заголовок окон программы. Теперь легко можно изменить высоту заголовка, перемесить название окна в центр заголовка, а, что еще полезнее – разместить в заголовке окна свои VCL-контролы, как это делает сама Delphi или другие программы (например, Office, Explorer, Google Chrome...).
Сделать это очень просто. В палитре компонент находим контрол TTitleBarPanel, помещаем его на форму и указываем его в свойстве формы CustomTitleBar.Control. Все – теперь вы можете управлять заголовком окна. Например, на наш TTitleBarPanel (на картинке ниже это панель с системными кнопками под заголовком формы) поместим TEdit:
Положением этого контрола TEdit можно управлять двумя способами:
TTitleBarPanel – это очередной пример простоты и элегантности разработки приложений с использованием Delphi.
Сделать это очень просто. В палитре компонент находим контрол TTitleBarPanel, помещаем его на форму и указываем его в свойстве формы CustomTitleBar.Control. Все – теперь вы можете управлять заголовком окна. Например, на наш TTitleBarPanel (на картинке ниже это панель с системными кнопками под заголовком формы) поместим TEdit:
Положением этого контрола TEdit можно управлять двумя способами:
- В design time. Так как TTitleBarPanel является обычным VCL-контролом, то для контрола который поместили на него можно установить обычные свойства позиционирования (Align, Anchors…). Например, чтобы контрол всегда находился справа от системных кнопок, перетащите его в нужное положение, а в свойстве Anchors установите akLeft = False и akRight = True.
- В run time. Добавьте форме обработчик события OnShow или OnResize:
procedure TForm1.FormShow(Sender: TObject); begin Edit1.Left := CustomTitleBar.CaptionButtonsRect.Left - Edit1.Width - 8; end;
- CaptionAlignment – позиция текста заголовка (Talignment, по умолчанию taLeftJustify);
- Enabled – включает/выключает использование пользовательских настроек заголовка;
- Height – высота строки заголовка в пикселях (чтобы эта настройка сработала необходимо свойству TTitleBar.SystemHeight присвоить False);
- ShowCaption – включает/выключает отображением текста заголовка;
- ShowIcon – включает/выключает отображением иконки формы в левой части строки заголовка;
- BackgroundColor, ForegroundColor, InactiveBackgroundColor и InactiveForegroundColor – цвета для рисования заголовка (чтобы эти настройки сработали необходимо свойству TTitleBar.SystemColors присвоить False);
- ButtonBackgroundColor, ButtonForegroundColor, ButtonHoverBackgroundColor, ButtonHoverForegroundColor, ButtonInactiveBackgroundColor, ButtonInactiveForegroundColor, ButtonPressedBackgroundColor и ButtonPressedForegroundColor - цвета для рисования кнопок заголовка (чтобы эти настройки сработали необходимо свойству TTitleBar.SystemColors присвоить False);
- IconRect, FrameRect, ClientRect и CaptionButtonsRect – свойства определяющие границы отрисовки элементов заголовка (можно использовать для расчета позиций своих контролов на заголовке или в событии TTitleBarPanel.OnPaint);
- CustomButtons – коллекция кнопок, которые располагаются слева от стандартных кнопок Minimize, Maximize и Close. Каждая кнопка (TCaptionButtonItem) обладает своим свойством ButtonType – тип кнопки (Close, Minimize, Restore, space, или custom) и стандартными для любых кнопок свойствами и событиями (Enabled, Hint, Visible, Width, OnClick, OnPaint).
TTitleBarPanel – это очередной пример простоты и элегантности разработки приложений с использованием Delphi.
Картинки не подгружаются, а жаль (
ОтветитьУдалитьТаже проблема у человека: https://it-blackcat.blogspot.com/2019/09/new-xlsx-files-generator-in-ehlib.html?showComment=1700061101752#c4253525581132291733
УдалитьА, что картинки с blogspot из рф не грузятся без VPN?