Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form Halbtransparent |> Fast durchsichtig (https://www.delphipraxis.net/127331-form-halbtransparent-%7C-fast-durchsichtig.html)

Oldy 11. Jan 2009 14:01


Form Halbtransparent |> Fast durchsichtig
 
Hallo ihr.

Ich hab schon das Forum durchsucht un google schon seit 20 Minuten, habe aber leider nix gefunden
Also..
ich habe eine Form, auf der ein Bild ist,wobei die Form mit Autosize angepasst ist. Diese Form soll halbtransparent sein, also dass ich das dahinterliegende durch die Form und das Bild sehe, das Bild aber trotzdem auch noch (eben halbtransparent).
Danke schonmal :P
Mfg
Oldy

Meflin 11. Jan 2009 14:04

Re: Form Halbtransparent |> Fast durchsichtig
 
Je nachdem welche Delphi-Version du einsetzt, ab Delphi 6 gibt es die Form-property AlphaBlend und AlphaBlendValue.

Diese musst du einfach auf einen gewünschten Wert setzen (zwischen 0 und 255).
http://delphi.about.com/od/graphics/l/aa022202a.htm

Ralf Kaiser 11. Jan 2009 14:06

Re: Form Halbtransparent |> Fast durchsichtig
 
Zitat:

Zitat von Meflin
Diese musst du einfach auf einen gewünschten Wert setzen (z.B. 50 für 50% Transparenz).

Ist AlphaBlend nicht ein Wert von 0-255?

Dann wäre 50% ja 128!

Meflin 11. Jan 2009 14:06

Re: Form Halbtransparent |> Fast durchsichtig
 
Zitat:

Zitat von Alfi001
Ist AlphaBlend nicht ein Wert von 0-255?

Dann wäre 50% aj 128!

Völlig richtig habs auch gerade angepasst ;)

Oldy 11. Jan 2009 14:07

Re: Form Halbtransparent |> Fast durchsichtig
 
habe leider nur Delphi 5

Meflin 11. Jan 2009 14:10

Re: Form Halbtransparent |> Fast durchsichtig
 
Dann könntest du das versuchen:
http://www.delphipraxis.net/internal...t.php?t=119359

Das Handle deiner Form bekommst du über Form.Handle ;)

lbccaleb 11. Jan 2009 14:12

Re: Form Halbtransparent |> Fast durchsichtig
 
Du kannst es auch mit folgendem Code machen:


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;

Aufrufen tust du es dann so:

Delphi-Quellcode:
MakeWindowTransparent(Form1.Handle, 128);
Edit:
Mhh mitm Link war einer schneller ;-)

Oldy 11. Jan 2009 14:15

Re: Form Halbtransparent |> Fast durchsichtig
 
ich hab beides ausprobiert und bei beiden das selbe
Keine fehlermeldung, es passiert einfach nichts..
liegts daran dass ich win 98 verwende?

Meflin 11. Jan 2009 14:24

Re: Form Halbtransparent |> Fast durchsichtig
 
Zitat:

Zitat von Oldy
liegts daran dass ich win 98 verwende?

Ja. Geht erst ab Win 2000. Gibt es irgendeinen Grund, noch Win98 einzusetzen :shock:

Matze 11. Jan 2009 14:28

Re: Form Halbtransparent |> Fast durchsichtig
 
Hilft dieser Code aus dem SDC:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  SetWindowLong(Form1.Handle, GWL_EXSTYLE,
  (GetWindowLong(Form1.Handle, GWL_EXSTYLE) or WS_WX_TRANSPARENT));
end;
Grüße, Matze

Edit: Ach Mist, dann wird's ja komplett durchsichtig (unsichtbar). Sorry. :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
Seite 1 von 2  1 2      

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