Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.04.2010, 11:42
EnemyT2 EnemyT2 вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 2
Репутация: 10
По умолчанию Прозрачный фон 2 способа

Delphi 2007
Задача:
Отображать рисунок png. Это круг, с прозрачным фоном. При этом форма не должна быть видна.
Пробовал 2 способа. Оба не дают удовлетворительного результата.
1) brush.style := bsClear;
В этом случае круг получается идеальным, как задумано. Но при этом как только я начинаю двигать окно, оно двигается вместе с тем куском фона, который просвечивал через те места, где картинка png прозрачная. Убрать эти куски можно только если снести\восстановить окно.
2) TransparentColor := true;
В этом случае форма двигается правильно. Но при этом контур круга становится кривым, обкусанным.
Вопрос:
Как сделать нормальным первый или второй метод, или какой еще способ можно применить?
Ответить с цитированием
  #2  
Старый 27.04.2010, 12:10
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Для прозрачных форм с прозрачностью более чем в 1 бит (т.е. либо область не видима, либо видима) нужно использовать Windows Layers (оверлэйные слои)
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #3  
Старый 27.04.2010, 12:45
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
Лампочка

выкладываю свой давнишний исходник прозрачность формы по png, как я понял у тебя уже есть исходник pngimage по этому тока сам сырец:
Вложения
Тип файла: 7z png.7z (10.3 Кбайт, 228 просмотров)
__________________
Arrrgh
Ответить с цитированием
  #4  
Старый 27.04.2010, 13:22
EnemyT2 EnemyT2 вне форума
Прохожий
 
Регистрация: 27.04.2010
Сообщения: 2
Репутация: 10
По умолчанию

Cпасибо. Если у меня на форме находится много картинок ПНГ, мне надо повторить этот метод, который прописан в FormCreate много раз для каждой картинки или можно как-то упростить процесс? И можно ли как-то использовать TImage, так как все процедуры у меня используют заранее созданный TImage?
Ответить с цитированием
  #5  
Старый 27.04.2010, 21:59
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

этот метод только для формы и не один компонент на этой форме не будет отображаться, если тебе нужна форма с прозрачностью по png с кнопками, то может создать форму поверх с резкими краями, а полупрозрачную сделать не выделяемой, и просто png форму перемещать за той что с кнопками. это самый просто вариант.
__________________
Arrrgh
Ответить с цитированием
  #6  
Старый 13.12.2010, 07:03
Аватар для N0iD
N0iD N0iD вне форума
Прохожий
 
Регистрация: 13.12.2010
Адрес: Тюмень
Сообщения: 2
Репутация: 10
Радость

urahara Спасибо за дельный предоставленный пример.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter