Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
3-1231686479
Чайник
2009-01-11 18:07
2009.12.20
Метод Locate - проблема с апострофом в строке поиска


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


2-1257420503
-=SV=-
2009-11-05 14:28
2009.12.20
Возможно ли в заголовке PageControl поставить или добавить кноку?


2-1257151733
kyn66
2009-11-02 11:48
2009.12.20
Периодический опрос во время работы программы.


4-1225224879
AndreyRus
2008-10-28 23:14
2009.12.20
Странности в определении загруженности CPU




   Наверх