AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AlphaBlend für Delphi 5 Prof.

Ein Thema von Nils_13 · begonnen am 7. Sep 2005 · letzter Beitrag vom 7. Sep 2005
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 16:34
Hi,

wie kann ich eine AlphaBlend in Delphi5 benutzen.

Wenn ich das dann in eine Kompo setze, welchen Vorfahrtyp könnte ich nehmen ?
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 16:51
so sollte es klappen

https://www.planet-source-code.com/v...d=649&lngWId=7
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 16:56
Cool, thx !

Mit
Delphi-Quellcode:
var i : integer;
begin
  for i := 100 downto 0 do
  begin
    MakeTransparent(Handle,i);
    Application.ProcessMessages;
  end;
  Close;
Lass ich die Form verschwinden, nur wie lasse ich sie so erscheinen ?
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:01
Delphi-Quellcode:
  for i := 0 to 100 do
  begin
    MakeTransparent(Handle,i);
    Application.ProcessMessages;
  end;
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:04
Nein, ahb ich auch schon probiert.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:04
aber du musst das Fenster vorher wieder öffnen.... schließlich hast du es ja mit Form1.Close geschlossen
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:09
gut,

und weißt du noch, wie ich alles in eine Unit packe, sodass ich nur noch im Uses-Teil die Unit einbinden muss und dann nur noch
  MakeTransparent(Handle, 100); sagen muss ?

[edit]Ich meine, ich habe ein Projekt und muss es nur noch einbidnen und aufrufen. [/edit]

Die bisherige Unit:
Delphi-Quellcode:
unit trans;

interface

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

implementation

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 MakeTransparent(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;

end.
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:16
also einfach die Prozedurendeklaration zwischen interface und implementation einfügen


Delphi-Quellcode:
unit TransparencyHelper;

interface

procedure MakeTransparent(AHandle: HWND; AValue: byte = 0);

implementation

procedure MakeTransparent(AHandle: HWND; AValue: byte = 0);
begin
  //und hier dein Code
end;
schöner wär's natürlich, wenn du ne eigene FormsKlasse von TForm ableitest... dann könntest du, ähnlich wie ab D6 die Alphablendwerte direkt per Property setzen.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: AlphaBlend für Delphi 5 Prof.

  Alt 7. Sep 2005, 17:23
thx, das läuft jetzt, aber das erscheinen läuft immer noch nciht.
  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 07:23 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