|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#2
|
||||
|
||||
см. DwmAPI
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
alfaskins тень умеет, а можно ли сделать цветной не знаю
>woweook< |
#4
|
|||
|
|||
мне нужно не именно тень по всему контору окна, а сделать это какими нибудь средствами рисования, чтоб управлять отдельно неоном с левой стороны и правой.
Узнал что YzShadow рисует всё через GDI+. Но как в gdi+ нарисовать градиент с прозрачностью, чтоб было видно что находится за окном, как на скрине в первом посту. Делаю новое окно поверх главного с прозрачным цветом "TransparentColor" пробовал рисовать и в PaintBox-е и на самом окне, прозрачности нет. Кто знает как добиться желаемого результата? Последний раз редактировалось DJDrugsounD, 16.08.2012 в 20:29. |
#5
|
||||
|
||||
Цитата:
Дома пороюсь в своих проектах и позже более подробно опишу. |
#6
|
||||
|
||||
Как вариант для 24 битных битмапов. НИКАКИХ проверок не делается и нужно допиливать для цветной тени:
Код:
procedure DropShadow(X, Y, Width, Height : Integer; var bmRes : TBitmap; Alpha : Integer); var pBits : Pointer; I, J, Z, Size : Integer; bmp : TBitmap; begin Size := bmRes.Width * bmRes.Height * 3; GetMem(pBits, Size); try GetBitmapBits(bmRes.Handle, Size, pBits); for J := Y to Y + Height - 1 do for I := X to X + Width - 1 do begin Z := J * bmRes.Width * 3 + I * 3; asm pushad mov esi, pBits add esi, Z mov edi, esi mov ebx, Alpha mov ecx, 3 @loop: lodsb mul bl xchg al, ah stosb loop @loop popad end; end; SetBitmapBits(bmRes.Handle, Size, pBits); finally FreeMem(pBits); end; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |