|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Прозрачный фон 2 способа
Delphi 2007
Задача: Отображать рисунок png. Это круг, с прозрачным фоном. При этом форма не должна быть видна. Пробовал 2 способа. Оба не дают удовлетворительного результата. 1) brush.style := bsClear; В этом случае круг получается идеальным, как задумано. Но при этом как только я начинаю двигать окно, оно двигается вместе с тем куском фона, который просвечивал через те места, где картинка png прозрачная. Убрать эти куски можно только если снести\восстановить окно. 2) TransparentColor := true; В этом случае форма двигается правильно. Но при этом контур круга становится кривым, обкусанным. Вопрос: Как сделать нормальным первый или второй метод, или какой еще способ можно применить? |
#2
|
||||
|
||||
Для прозрачных форм с прозрачностью более чем в 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
|
||||
|
||||
выкладываю свой давнишний исходник прозрачность формы по png, как я понял у тебя уже есть исходник pngimage по этому тока сам сырец:
Arrrgh |
#4
|
|||
|
|||
Cпасибо. Если у меня на форме находится много картинок ПНГ, мне надо повторить этот метод, который прописан в FormCreate много раз для каждой картинки или можно как-то упростить процесс? И можно ли как-то использовать TImage, так как все процедуры у меня используют заранее созданный TImage?
|
#5
|
||||
|
||||
этот метод только для формы и не один компонент на этой форме не будет отображаться, если тебе нужна форма с прозрачностью по png с кнопками, то может создать форму поверх с резкими краями, а полупрозрачную сделать не выделяемой, и просто png форму перемещать за той что с кнопками. это самый просто вариант.
Arrrgh |
#6
|
||||
|
||||
urahara Спасибо за дельный предоставленный пример.
|