Прозрачный фон TGroupBox

Компонент находится на вкладке Additional .

Компонент отображает на форме графическое изображение и обеспечивает работу с ним.

Основные cвойсва:
Picture — содержит отображаемый графический объект;
Proportional — будет ли картинка изменяться пропорционально при увеличении размеров;
Stretch — должны ли изменяться размеры изображения, подгоняясь под размеры компонента. Учтите, что изменение размеров изображения приведет к его искажению, если соотношение сторон графического объекта и компонента TImage не одинаково;
Transparent — должен ли быть цвет фона изображения прозрачным, чтобы сквозь него было видно нижележащее изображение;
Center — должно ли изображение центрироваться в поле компонента, если его размеры меньше размеров поля. При значении False изображение располагается в верхнем левом углу поля. Свойство не действует, если AutoSize установлено в true или если Stretch установлено в true и Picture содержит не пиктограмму;
Center — Указывает, изменяется ли автоматически размер компонента, подстраиваясь под размер изображения. По умолчанию False - не подстраивается.

Свойство Picture типа TPicture содержит отображаемый графический объект типа битовой матрицы, пиктограммы, метафайла или определенного пользователем типа. Свойство Canvas позволяет создавать и редактировать изображения.

TPicture является контейнером любого графического объекта TGraphic, тип которого указывается свойством Graphic .В зависимости от типа хранимого объекта - битовой матрицы, пиктограммы, метафайла, определены соответствующие свойства Bitmap , Icon или Metafile , указывающие на графический объект.

Для того, чтобы загрузить изображение, нужно найти свойство Picture и нажать на кнопку . В появившемся окне нажать Load и выбрать изображение.

TGroupBox

Компонент находится на вкладке Standard.

Панель TGroupBox - это контейнер с рамкой и надписью, объединяющий группу связанных органов управления, таких как радиокнопки TRadioButton , индикаторы TCheckBox и т.д. В отличие от других панелей (например, TPanel) не имеет широких возможностей задания различных стилей оформления. Но TGroupBox имеет встроенную рамку с надписью, которая обычно используется для выделения на форме группы функционально объединенных компонентов.

Основные cвойсва:
Align — определяет способ выравнивания компонента в контейнере (родительском компоненте);
Caption — надпись в углу рамки панели;
Font — определяет атрибуты шрифта.

TRadioGroup

TRadioGroup - это панель, которая содержит радиокнопки, регулярно расположенные столбцами и строками. Из радиокнопок группы может быть включена только одна. При включении какой-то кнопки все остальные выключаются.

Основные cвойсва:
Caption — надпись в левом верхнем углу панели;
Items — надписи кнопок и их количество, имеет тип TStrings;
Columns — колличество столбцов;
ItemIndex — какая из кнопок была выделенна пользователем.

Во время проектирования задание свойства Items осуществляется вызываемым из инспектора объектов редактором списков строк. Сколько строчек вы запишете в нем, столько и будет кнопок.

Кнопки можно разместить в несколько столбцов (не более 17), задав свойство Columns . По умолчанию Columns = 1, т.е. кнопки размещаются друг под другом.

Многие задавались вопросом — А как же сделать прозрачный фон в TGroupBox. Этот прозрачный фон и вовсе ненужен, если Вы в своей программе используете скины например, то есть готовые компоненты, которые позволяют скинизировать Вашу программу, а также если Вы не используете никакого дизайна в своей программе. А теперь давайте поступим так, установите на форму компонент TImage и в свойстве Align задайте — alClient . Теперь в свойстве Picture компонента TImage загрузите какую-нибудь фотографию. Отлично, многие с помощью данного компонента делаю себе дизайн программы, как в частности я сделал в AS ImageDecoder . Теперь давайте на наш компонент TImage установим компонент TLabel . Отлично теперь скомпилируем программу и видим, какой некрасивый фон написана Caption TLabel . Но тут решается все просто, у данного компонента (TLabel ) есть замечательное свойство — Transparent , при установки которого в значение True , убирается данный фон и становится прозрачным. Такого в компоненте TGroupBox например нету и если мы его установим на TImage , увидим тоже самое, что не красиво смотрится и фон не прозрачный.

Чтобы исправить это (чтобы фон был прозрачным), предлагаю написать следующий код на событие формы OnCreate

procedure TForm1. FormCreate (Sender: TObject ) ; begin try GroupBox1. Brush . Style : = bsClear; SetWindowLong(GroupBox1. Handle , GWL_EXSTYLE, GetWindowLong(GroupBox1. Handle , GWL_EXSTYLE) or WS_EX_TRANSPARENT) ; InvalidateRect(GroupBox1. Handle , NIL , True ) ; except on e: Exception do end ; end ;

Мы тут очищаем стиль кисти и затем устанавливаем для хэндла TGroupBox значение TRANSPARENT , то есть прозрачность и с помощью InvalidateRect перерисовываем его, конечно скомпилировав наш проект, мы увидим, что текст написанный в Caption - TGroupBox находится в непрозрачном фоне, как первоначально и TLabel , что очень не красиво.

Как видите фон самого TGroupBox стал прозрачным, и теперь можем помещать в него любые компоненты и будет отлично все, но что делать с заголовком? Предлагаю так решить проблему, вообще убираем наш заголовок, и ставим на форму TLabel и устанавливаем у данного компонента в свойстве Transparent - True , дальше на место заголовка TGroupBox , я ставлю TLabel , почти не заметно, но зато прозрачный фон, это можно применить почти с каждым визуальным компонентом. При определенном фоне можно достичь почти отличного результат, в общем дальше просто включаем фантазию и фанатазируем

Хочу заметить, что в настоящее время очень стали популярны Интернет-магазины, через них сейчас можно купить почти все что угодно. Например, можно купить