AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Komponente als Handle benutzen / Form1.Alphablend übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente als Handle benutzen / Form1.Alphablend übertragen

Offene Frage von "Lemmi"
Ein Thema von Lemmi · begonnen am 12. Aug 2006
Antwort Antwort
Lemmi

Registriert seit: 8. Aug 2006
11 Beiträge
 
#1

Komponente als Handle benutzen / Form1.Alphablend übertragen

  Alt 12. Aug 2006, 12:44
Hi Delphianer,

Ich möchte auf meiner Form ein Hintergrundbild haben und buttons, memos etc. leicht transparent haben.Nun habe ich folgenden Code gefunden, mitdem man das komplette formular transparent machen konnte.

1.Ansatz

Delphi-Quellcode:
type
 TSetLayeredWindowAttributes = function (
     hwnd : HWND; // handle to the layered window
     crKey : TColor; // specifies the color key
     bAlpha : byte; // value for the blend function
     dwFlags : DWORD // action
     ): BOOL; stdcall;

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

procedure SetTransparentForm(AHandle : THandle; AValue : byte = 0);
var
 Info: TOSVersionInfo;
 SetLayeredWindowAttributes: TSetLayeredWindowAttributes;
begin
 //Check Windows version
 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);
        //Make form transparent
        SetLayeredWindowAttributes(AHandle, 0, AValue, LWA_ALPHA);
      end;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetTransparentForm(Handle,150);
end;
Kann ich diese Procedure auch irgendwie auf Komponenten anwenden? Hat jemand einen besseren Vorschlag, wie ich das realisieren kann, z.B. die Alphablend-Eigenschaft von TForm auf andere Komponenten übertragen kann?

2.Ansatz

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Form2 := TForm2.Create(Application);
 Form2.Top := 0;
 Form2.Left := 0;
 Form2.Parent := Form1;
 Form2.AlphaBlend := true;
 Form2.AlphaBlendValue := 150;
 Form2.visible := True;
end;
Problem hierbei ist: Form2 wird nicht transparent, da form1 nicht transparent ist....

Freue mich über jeden Ratschlag

Gruß, Lemming
Es gibt kein Problem, aber ich arbeite dran.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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