powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прозрачность......
11 сообщений из 11, страница 1 из 1
Прозрачность......
    #32134210
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, как можно сделать такую вещь, как прозрачность формы, с учетом того, ято на нее кидается рисунок, у которого левый верхний угол белого цвета, так вот, надо, что бы все белые части были прозрачными, а остальное отображалось. Помогите пжлста...
...
Рейтинг: 0 / 0
Прозрачность......
    #32134224
balbes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HI ScableR

Насчет прозрачности формы пожалуйста...
Код: plaintext
1.
2.
3.
4.
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone
end; 

А насче рисунков извини не знаком...
...
Рейтинг: 0 / 0
Прозрачность......
    #32134232
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НЕ, ну это-то да... А по цвету прозрачность никто не может сделать?
...
Рейтинг: 0 / 0
Прозрачность......
    #32134236
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Image1.Transparent := True;
и левый нижний пиксель - тот цвет, который будет прозрачным.
...
Рейтинг: 0 / 0
Прозрачность......
    #32134242
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда... Надо попробовать :)
...
Рейтинг: 0 / 0
Прозрачность......
    #32134247
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2balbes:
Код: plaintext
Form1.Brush.Style := bsClear;

Вообщето эта функция была добавлена в виндовоз апи начиная тока с 2k... А такое-вот применение на компе с 9х-Ме вызовет ошибку (вплоть до зависания :))

Если у кого-то есть дельные идеи, то поделитесь!
...
Рейтинг: 0 / 0
Прозрачность......
    #32134254
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот сдесь можеш почитать
http://delphigfx.mastak.ru/2d/002/2d_2.htm
...
Рейтинг: 0 / 0
Прозрачность......
    #32134285
Фотография ScableR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, ну эта фишка у меня уже давно есть. Я просто думал, что у кого-нибудь есть свежие идеи/мысли по данному вопросу. Видать ни у кого.
...
Рейтинг: 0 / 0
Прозрачность......
    #32134793
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему тебе нужно вот это:
Функция может быть использована для задания цвета, который становится прозрачным, остальные цвета остаются неизменными.

Код: plaintext
1.
SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE)^WS_EX_LAYERED); 
 SetLayeredWindowAttributes(hWnd,RGB( 0 , 0 , 0 ),m_slider.GetPos(),LWA_ALPHA);


Я, правда, сам никогда не использовал!
...
Рейтинг: 0 / 0
Прозрачность......
    #32135129
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж, начитаешься тут ...
Для прозрачных форм (если ты имеешь ввиду дырки в формах) нужно комбинировать регионы. Читай помощь по SetWindowRegion, CombineRegion и т.п. (может я и с ошибками их названия написал - сам найдёшь). Смысл в таком: в цикле построчно перебираешь свою картинку по точкам. Если точки непрозрачного цвета - создаёщь из них прямоугольный регион высотой в одну точку и присоединяешь к ранее созданным. Потом в конструкторе формы заменяешь этот регион на свой. Примера нету - думай сам...
...
Рейтинг: 0 / 0
Прозрачность......
    #32135412
oleg_e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, попробовал! Работает!
ЭТО сделает все (ВСЕ) черные точки твоего окна прозрачными!
Правда, я не смог управлять уровнем прозрачности! :-(
Зато окна произвольной формы делать проще чем через регионы!

Код: plaintext
1.
2.
3.
4.
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
  SetLayeredWindowAttributes(Handle, RGB( 0 , 0 , 0 ),  150 , LWA_COLORKEY);
end;
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прозрачность......
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]