Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Наложение цветов и прозрачность


zagzag ©   (2003-08-05 12:51:00) 

Имеется некая сложная картинка. Подскажите, как реализовать перетаскивание мышью отдельных ее фрагментов.
Примерно так, как перетаскивается иконка с места на место на рабочем столе. Т.е. прежнее положение сохраняется, а новое тускнеет и делается полупрозрачным.
Спасиба !!!


Zergling   (2003-09-24 06:40:00) [1]

Попробуй это поэксплуатировть, только надо иметь быстрый доступ к пикселям

Function Brightness(OriginalColor:TColor;Transp:Byte):TColor;
Var R,G,B:Integer; // Текущий цвет
nR,nG,nB:Integer; // Новый цвет
Begin
R:=(OriginalColor and $ff) shr 0;
G:=(OriginalColor and $ff00) shr 8;
B:=(OriginalColor and $ff0000) shr 16;
// Яркость
{
nR:=R-Change2;
ng:=G-Change3;
nb:=B-Change4;
}
// Прозрачность
nR :=Round(0/100*Transp+((r/100)*(100-Transp)));
nG :=Round(255/100*Transp+((g/100)*(100-Transp)));
nB :=Round(0/100*Transp+((b/100)*(100-Transp)));

// Ограничения по выбору цвета
if nR>$ff then nR:=$ff;
if nG>$ff then nG:=$ff;
if nB>$ff then nB:=$ff;
if nR<0 then nR:=0;
if nG<0 then nG:=0;
if nB<0 then nB:=0;
Brightness:=(nB shl 16)+(nG shl 8)+(nR shl 0);
End;


Наверх

Титульная страница Поиск, карта сайта Написать письмо