Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.25;
Скачать: CL | DM;

Вниз

Тень от формы   Найти похожие ветки 

 
B0ob   (2007-05-12 07:40) [0]

Как сделать тень от формы(например как в заставке от фотошопа)??


 
йцукенг   (2007-05-12 15:29) [1]

создай дополнительную полупрозрачную форму


 
DVM ©   (2007-05-12 15:44) [2]


> Как сделать тень от формы(например как в заставке от фотошопа)?
> ?

Фотошоп делает как-то так:

1)  Делает скриншот рабочего стола.
2) Создает окно прямоугольное окно.
3) Копирует на окно нужную часть рабочего стола.
4) Рисует сверху тень
5) Рисует сверху фон окна.


 
{RASkov} ©   (2007-05-12 16:00) [3]

> [0] B0ob   (12.05.07 07:40)


на CreateForm
SetClassLong(Handle, GCL_STYLE, GetWindowLong(Handle, GCL_STYLE) or $00020000);


 
DVM ©   (2007-05-12 16:06) [4]


> {RASkov} ©   (12.05.07 16:00) [3]

Это крайне глючный вариант, который приводит к зависнию или вылету приложений под некоторыми версиями Win. Замечу - не старыми версиями, типа Win2000 со всеми SP/XP/2003. В более ранних это вообще игнорируется.


 
{RASkov} ©   (2007-05-12 17:39) [5]

> [4] DVM ©   (12.05.07 16:06)

Может быть.... Буду иметь ввиду )


 
homm ©   (2007-05-12 18:04) [6]

> Это крайне глючный вариант, который приводит к зависнию
> или вылету приложений под некоторыми версиями Win.

0_о Какими это?


> В более ранних это вообще игнорируется.

Пусть. Иногда это не страшно.

Ну а в целом конечно [3] не отвечает на вопрос, «как это сделано в фотошопе» :)


 
DVM ©   (2007-05-12 18:10) [7]


> 0_о Какими это?

Как то сталкивался, что сие не работает в Win2000:

procedure TSplashForm.CreateParams(var Params: TCreateParams);
const
 CS_DROPSHADOW = $00020000;
begin
 inherited;
 Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;

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

Спустя время, оказалось, что это и в XP не всегда работает. Тогда не записал точную версию XP и сервис паки и прочие параметры системы - не было времени - просто убрал тень. С тех пор не использую.


> Ну а в целом конечно [3] не отвечает на вопрос, «как это
> сделано в фотошопе» :)

По моему наоборот отвечает именно как сделано в фотошопе. Там действительно так сделано. Там окно даже регионов непрямоугольных не имеет. Обманка. И тень ненастоящая.


 
homm ©   (2007-05-12 18:36) [8]

> По моему наоборот отвечает именно как сделано в фотошопе.

[2] c [3] путаешь? :)


> Как то сталкивался, что сие не работает в Win2000:

Вполне может быть что дело не совсем в этом. ХП тоже вот приложение акрывает если есть манифест на использование 6-й версии конролов, но перед вызовом CreateWindow нет InitCommonSontrols (или как ее там).


 
DVM ©   (2007-05-12 18:44) [9]


> [2] c [3] путаешь? :)

Извини, действительно препутал. :)


> Вполне может быть что дело не совсем в этом.

Как только я эти строки убрал - все заработало. А манифест в программе лежал всегда в ресурсах под всеми Win.


 
B0ob   (2007-05-14 14:28) [10]

Спасибо за советы, я нашел исходник, который рисует тень по маске(альфа-каналы и все такое), очень хороший исходник, думаю разберусь


 
Ketmar ©   (2007-05-16 16:38) [11]

http://www.codeproject.com/gdi/pxalphablend.asp



Страницы: 1 вся ветка

Текущий архив: 2007.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
15-1192354956
Stanislav
2007-10-14 13:42
2007.11.25
Сканер памяти (типа ArtMoney)


2-1194006557
timekiller
2007-11-02 15:29
2007.11.25
Прокрутка формы


15-1192629525
исследователь
2007-10-17 17:58
2007.11.25
ALTER TABLE в Delphi


15-1192899638
Cerberus
2007-10-20 21:00
2007.11.25
Можноли программно открыть страницу в уже открытом IE


15-1193278614
Slider007
2007-10-25 06:16
2007.11.25
С днем рождения ! 25 октября 2007 четверг