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

Вниз

Как сделать компонент image1 на форме полупрозрачным   Найти похожие ветки 

 
Don   (2009-11-01 19:53) [0]

Здравствуйте. Где-то читал, что можно с помощью свойства альфабленд сделать прозрачным даже Image1 на форме, но небыло указано как.

Function SetLayeredWindowAttributes(hwnd: HWND; crKey: COLORREF; bAlpha:
byte; dwFlags: dword):bool; stdcall; external "USER32.DLL";

procedure TForm1.SetBlend(AlphaBlend:byte; wnd:hwnd);
var old: longint;
begin
 old:=GetWindowLongA(wnd,GWL_EXSTYLE);
 SetWindowLongA(wnd,GWL_EXSTYLE,old or $80000);
 SetLayeredWindowAttributes(wnd, 0, AlphaBlend, $2);
end;

SetBlend(100, image1.canvas.handle);

Это пример к сожалению не дает положительного результата. Может кто подскажет в чем причина, и как ее исправить. Буду очень благодарен.


 
Юрий Зотов ©   (2009-11-01 20:14) [1]

Сanvas.handle - это не тот хэндл. Здесь нужен хэндл окна, а у TImage никакого окна нет, так что все эти упражнения с Alpha заведомо бесполезны.

Все намного проще - у TImage есть свойство Transparent.


 
Омлет.   (2009-11-02 00:12) [2]

> Юрий Зотов

Transparant - это полная прозрачность для какого-то одного цвета.
По теме - нужно вручную делать отрисовку с нужной прозрачностью. И для этого лучше использовать PaintBox и временный Bitmap, как минимум.


 
Don   (2009-11-04 15:03) [3]

Вот кому интерестно нашел ришение:

procedure TForm1.Button1Click(Sender: TObject);
var
 bmp:TBitmap;
 bf:BLENDFUNCTION;
begin
bmp:=TBitmap.Create;
try
 bmp.LoadFromFile("1.bmp");

 bf.BlendOp:=AC_SRC_OVER;
 bf.BlendFlags:=0;
 bf.SourceConstantAlpha:=100;//величина прозрачности (0-255)
 bf.AlphaFormat:=0;
 Windows.AlphaBlend(Image1.Canvas.Handle, 0, 0, Image1.ClientWidth, Image1.ClientHeight,
                     bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bf);
finally
 bmp.Free;
end;
end;

Всем благодарен за ответы, всех благ, всего наилутшего.


 
antonn ©   (2009-11-04 19:03) [4]

аналог альфабленда, в той теме где уже бывал автор http://delphimaster.net/view/8-1253597355/



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
2-1257157125
Rendal
2009-11-02 13:18
2009.12.20
Удаление ключа из реестра


15-1255984915
DmitriyG.
2009-10-20 00:41
2009.12.20
Кто каким средством пользуется для создания Help?


1-1229431109
Zilog
2008-12-16 15:38
2009.12.20
Как закрыть не своё диалоговое окно?


4-1225282594
Н_А
2008-10-29 15:16
2009.12.20
winAPI


2-1256898581
Oleg1963
2009-10-30 13:29
2009.12.20
Компонент Еdit в цикле