68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
1

Прозрачность одной лишь формы в C++ Builder XE4

02.08.2013, 22:06. Показов 1393. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У Меня такой вопрос - возможно ли сделать лишь задний фон формы сделать прозрачным, и не трогая другие компоненты? Есть конечно один метод для достижения прозрачности формы:

C++
1
2
Form1->TransparentColor=Form1->Color;
Form1->TransparentColor=True;
Но этот метод Мне не подходит.
Хочу сделать программу, которая будет делать лишь задний фон программы прозрачным, однако компонент Image не трогать, т.к. в нём Я хочу разместить изображения(среди которых будут различные цвета)...

Пробовал уже задавать форме различные цвета фона, однако, в компоненте Image, которое содержит изображение формата *.ico и содержит чёрный цвет, этот самый чёрный цвет не отображается.

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

Прозрачность одной лишь формы в C++ Builder XE4

Прозрачность одной лишь формы в C++ Builder XE4

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.08.2013, 22:06
Ответы с готовыми решениями:

sapi and C++ builder XE4
Всем привет. Пишу на билдере прогу которая будет читать текст. ::CoInitialize(NULL); if(...

Настройка C++ Builder XE4
Не появляются подсказки при отладке программы. Расставил точки останова, начал искать ошибку, но...

Анимация в c++ Builder xe4
Здравствуйте уважаемые программисты и пользователи форума. Недавно захотел улучшить свою программу...

Работа с C++ Builder XE4
Доброго времени суток! Волей случая пришлось запустить одну свою программу. Так как, нормального...

3
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
04.08.2013, 19:09 2
Так подойдёт?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    HRGN hrgn = CreateRectRgn(0, 0, 0, 0);
 
    for ( int i = 0; i < ComponentCount; i++ )
    {
        TControl *control = dynamic_cast<TControl *>(Components[i]);
 
        if (control == NULL) continue;
 
        TPoint p = control->ClientOrigin;
        int left = p.x - this->Left;
        int top =  p.y - this->Top;
        int width = control->ClientWidth;
        int height = control->ClientHeight;
 
        HRGN thrgn = CreateRectRgn(left, top, left+width, top+height );
        CombineRgn(hrgn, hrgn, thrgn, RGN_OR);
    }
 
    SetWindowRgn(Handle, hrgn, true);
 
}
0
68 / 41 / 14
Регистрация: 24.02.2013
Сообщений: 250
04.08.2013, 19:42  [ТС] 3
kzru_hunter, у Меня лишь MainMenu убрался, но задний фон окна не исчез. Я бы хотел, что бы компонент Image остался не тронутым, а вот фон формы исчез(но не пропадали Button'ы, ScrollBar'ы, Image'ы, и т.д.)...
Так что, увы, код не подходит...
Как Я заметил - этот код убирает вообще всё, что попадёт под координаты в ( int left = p.x - this->Left; int top = p.y - this->Top; ). Пробовал их изменить, и ничего не вышло толкового...
0
1123 / 794 / 101
Регистрация: 01.02.2011
Сообщений: 1,880
Записей в блоге: 1
05.08.2013, 02:54 4
Странно конечно, но должно происходить всё наоборот: т.е. изменение региона окна таким образом, чтобы остались непрозрачными
только контролы.
0
05.08.2013, 02:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2013, 02:54
Помогаю со студенческими работами здесь

[C++ Builder XE4] Замирает форма
Здравствуйте. На днях установил C++ Builder XE4 проверить как работает это среда. Создал новый...

Embarcadero RAD Studio C++ Builder XE4
XE4 Кстати поделитесь опытом, создавал ли кто-то приложения на FMX (FireMonkey) , лучше ли она...

Прозрачность формы, при наведении мыши на кнопку реализовать изменение её положения относительно формы с невозможностью выхода за границы формы
доброй ночи, уважаемые программисты, студенты,а также любители программировать. помогите,...

RAD Studio XE4 и компоненты для Builder
Есть набор компонент в исходниках и проектах. Для разных версий студии. Как принято в наборах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru