Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прозрачность...... / 11 сообщений из 11, страница 1 из 1
06.04.2003, 05:02
    #32134210
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
Подскажите, как можно сделать такую вещь, как прозрачность формы, с учетом того, ято на нее кидается рисунок, у которого левый верхний угол белого цвета, так вот, надо, что бы все белые части были прозрачными, а остальное отображалось. Помогите пжлста...
...
Рейтинг: 0 / 0
06.04.2003, 11:40
    #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
06.04.2003, 12:28
    #32134232
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
НЕ, ну это-то да... А по цвету прозрачность никто не может сделать?
...
Рейтинг: 0 / 0
06.04.2003, 12:58
    #32134236
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
Image1.Transparent := True;
и левый нижний пиксель - тот цвет, который будет прозрачным.
...
Рейтинг: 0 / 0
06.04.2003, 14:19
    #32134242
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
Мда... Надо попробовать :)
...
Рейтинг: 0 / 0
06.04.2003, 14:42
    #32134247
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
2balbes:
Код: plaintext
Form1.Brush.Style := bsClear;

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

Если у кого-то есть дельные идеи, то поделитесь!
...
Рейтинг: 0 / 0
06.04.2003, 15:31
    #32134254
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
вот сдесь можеш почитать
http://delphigfx.mastak.ru/2d/002/2d_2.htm
...
Рейтинг: 0 / 0
06.04.2003, 17:52
    #32134285
ScableR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
Не, ну эта фишка у меня уже давно есть. Я просто думал, что у кого-нибудь есть свежие идеи/мысли по данному вопросу. Видать ни у кого.
...
Рейтинг: 0 / 0
07.04.2003, 15:10
    #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
07.04.2003, 19:59
    #32135129
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Прозрачность......
Да уж, начитаешься тут ...
Для прозрачных форм (если ты имеешь ввиду дырки в формах) нужно комбинировать регионы. Читай помощь по SetWindowRegion, CombineRegion и т.п. (может я и с ошибками их названия написал - сам найдёшь). Смысл в таком: в цикле построчно перебираешь свою картинку по точкам. Если точки непрозрачного цвета - создаёщь из них прямоугольный регион высотой в одну точку и присоединяешь к ранее созданным. Потом в конструкторе формы заменяешь этот регион на свой. Примера нету - думай сам...
...
Рейтинг: 0 / 0
08.04.2003, 10:35
    #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
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Прозрачность...... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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