Delphi-PRAXiS

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. :(

turboPASCAL 11. Jan 2009 14:31

Re: Form Halbtransparent |> Fast durchsichtig
 
Zitat:

Gibt es irgendeinen Grund, noch Win98 einzusetzen
(Ja ein PC der nicht XP oder höher verträgt.)

Wer mit Windowsversionen unter XP arbeited muss auf Transparente Fenster (Formen) leider verzichten. Diese werden nicht in diesen OS nicht unterstützt.

Oldy 11. Jan 2009 14:33

Re: Form Halbtransparent |> Fast durchsichtig
 
oh schade.. nuja danke an alle!

Whatever 12. Jan 2009 13:35

Re: Form Halbtransparent |> Fast durchsichtig
 
Hallo,

hat nur das Formular die Eigenschaft AlphaBlend oder auch andere Komponenten?

mfg Whatever

Matze 12. Jan 2009 15:44

Re: Form Halbtransparent |> Fast durchsichtig
 
Wenn ich es in der Hilfe richtig sehe, gibt's das nur beim Formular.
Aber es gibt sicher Drittkomponenten (Bsp. bei torry.net schauen), die das unterstützen oder vielleicht auch Möglichkeiten, dieses Verhalten den Standardkomponenten beizubringen, doch da sieht's etwas mager aus, wenn man ähnliche Themen hier in der DP liest.

Grüße, Matze


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 Uhr.

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