Einzelnen Beitrag anzeigen

Benutzerbild von mOzZzI
mOzZzI

Registriert seit: 11. Nov 2005
Ort: Bamberg
320 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Formular durchsichtig machen

  Alt 11. Feb 2006, 22:06
ich glaube so geht es...

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

const
  WS_EX_LAYERED = $80000;
  LWA_COLORKEY = 1;
  LWA_ALPHA = 2;

type
  TSetLayeredWindowAttributes = function(
    hwnd: HWND; // handle fuers fenster
    crKey: TColor; // die farbe
    bAlpha: byte; // wert fuer die blend funktion
    dwFlags: DWORD //
    ): BOOL; stdcall;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure SetTransparentForm(AHandle: THandle; AValue: byte = 0);
var
  Info: TOSVersionInfo;
  SetLayeredWindowAttributes: TSetLayeredWindowAttributes;
begin
// geht meines wissen ab win2000
  Info.dwOSVersionInfoSize := SizeOf(Info);
  GetVersionEx(Info);
  if (Info.dwPlatformId = VER_PLATFORM_WIN32_NT) and
    (Info.dwMajorVersion >= 5) then
  begin
    SetLayeredWindowAttributes := GetProcAddress(GetModulehandle(user32), 'SetLayeredWindowAttributes');
    if Assigned(SetLayeredWindowAttributes) then
    begin
      SetWindowLong(AHandle, GWL_EXSTYLE, GetWindowLong(AHandle, GWL_EXSTYLE) or WS_EX_LAYERED);
        //und jetzt transparent zeichnen
      SetLayeredWindowAttributes(AHandle, 0, AValue, LWA_ALPHA);
    end;
  end;
end;




procedure TForm1.FormCreate(Sender: TObject);
begin
    // 0 --> voll transparent
    // 255 --> nicht trabsparent
  SetTransparentForm(Handle, 240);

end;

end.
--Mfg mozZzI--------------
Get & Test my ToolBar (550 KB)
Thread & Comments Here
------------------------------
  Mit Zitat antworten Zitat