Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi UpdateLayeredWindow + Buttons/Edit (https://www.delphipraxis.net/127796-updatelayeredwindow-buttons-edit.html)

Gruber_Hans_12345 19. Jan 2009 09:31


UpdateLayeredWindow + Buttons/Edit
 
Hallo

Wie schaffe ich es auf einem Form, das ich mit UpdateLayeredWindow Transparent mache, auch noch Buttons, Edit und LAbels anzuzeigen?

Bei mir werden die einfach nicht angezeigt bzw. das UpdateLayeredWindow wird einfach drüber gezeichnet ...

Gruber_Hans_12345 19. Jan 2009 14:30

Re: UpdateLayeredWindow + Buttons/Edit
 
Hallo, habe gerade rausgefunden, das es mit UpdateLayeredWindow leider nicht funktioniert ;(

Weiss jemand anders eine Lösung, um ein Formular mit AlphaChannel zu versehen?

Ich habe eine Formular, das nach einer Form ausgeschnitten werden soll (Bisher habe ich es mit den JV gemacht, da gabs ein TJvTransparentForm)
aber nun möchte ich auch eine Halbtransparent verwenden
In meinem Fall ist es ein Schatten, der im PNG existiert, und der nun mitgezeichnet werden soll.

Mit UpdateLayeredWindow funkt es optisch 1a, aber wie gesagt kann dies ja keine Childcontrols verwenden ...

lbccaleb 19. Jan 2009 14:37

Re: UpdateLayeredWindow + Buttons/Edit
 
Hey, vllt hilft dir das hier weiter:

Delphi-Quellcode:
procedure MakeWindowTransparent(Wnd: HWND; Alpha: Byte);
const
  WS_EX_LAYERED = $80000;
  LWA_ALPHA    = $02;
type
  TSetLayeredWindowAttributes = function(const hWnd: HWND; crKey: Integer; bAlpha: Byte; dwFlags: Integer) : Integer; stdcall;
var
  SetLayeredWindowAttributes : TSetLayeredWindowAttributes;
  User32DLL                 : THandle;
begin
  User32DLL := LoadLibrary('User32.dll');
  if User32DLL <> 0 then
  begin
    @SetLayeredWindowAttributes := GetProcAddress(User32DLL, 'SetLayeredWindowAttributes');
    if @SetLayeredWindowAttributes <> nil then
    begin
      SetWindowLong(Wnd, GWL_EXSTYLE, GetWindowLong(Wnd, GWL_EXSTYLE) or WS_EX_LAYERED);
      SetLayeredWindowAttributes(Wnd, 0, Alpha, LWA_ALPHA);
    end;
  end;
  FreeLibrary(User32DLL);
end;
Aufruf:

Delphi-Quellcode:
MakeWindowTransparent(form1.handle, 155);
mfg

Gruber_Hans_12345 19. Jan 2009 15:50

Re: UpdateLayeredWindow + Buttons/Edit
 
nein, das bringt mir ledier nichts, da die transparenz bei mir über den alpha kanal gesteuert werden muß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz