AGB  ·  Datenschutz  ·  Impressum  







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

Transparente Form

Ein Thema von Jelly · begonnen am 21. Jul 2005 · letzter Beitrag vom 21. Jul 2005
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Transparente Form

  Alt 21. Jul 2005, 15:54
Hallo,

ich nutze für ein Programm einén Bootbildschirm, welches ein transparentes Form sein soll. Klappt in den meisten Fällen auch wunderbar, doch irgendwie habe ich 2 komische Erscheinungen.

Ich habe als transparente Farbe clLime definiert. Das Anzeigen der Form klappt wie gewollt. Nach dem Anzeigen verbindet sich mein Programm zu einer Online Datenbank, was mal einige Sekunden dauern kann. Ab und zu wechselt mein transparentes Form dann jedoch zu einem ganz normalen Fenster, und dieses hässliche Grün erscheint wieder als Hintergrund (siehe Attachment).

Das zweite Problem hängt irgendwie mit dem ersten zusammen. Denn nach dem Connecten mit der Datenbank versuche ich wieder das Bootfenster zu schliessen, jedoch tuts das nicht immer.

Woran kann das liegen. Wie gesagt, in den meisten Fällen klappts, jedoch manchmal scheint dieses Fenster ein Eigenleben zu entwickeln.
Miniaturansicht angehängter Grafiken
transparentform_192.png  
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: Transparente Form

  Alt 21. Jul 2005, 16:09
SetLayeredWindowAttributes() ist dein Freund LWA_COLORKEY

und im OnFormCreate
Delphi-Quellcode:
var
  iStyleEx: cardinal;

begin
  iStyleEx := GetWindowLong(Handle, GWL_EX_STYLE);
  iStyleEx := iStyleEx or WS_EX_TRANSPARENT;
  SetWindowLong(Handle, GWL_EX_STYLE, iStyleEx);
end;
ich hoff ich hab getz nix verwürfelt
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Transparente Form

  Alt 21. Jul 2005, 16:22
Hmm, "Undeclared identifier: GWL_EX_STYLE"

Welche Unit muss ich denn einbinden?

Und was hat das mit dem SetLayeredWindowAttributes auf sich. Ich kann dazu auch keine Hilfe finden.
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#4

Re: Transparente Form

  Alt 21. Jul 2005, 16:27
Delphi-Quellcode:
var
  iStyleEx: cardinal;

begin
  iStyleEx := GetWindowLong(Handle, GWL_EXSTYLE);
  iStyleEx := iStyleEx or WS_EX_LAYERED;
  SetWindowLong(Handle, GWL_EXSTYLE, iStyleEx);
end;
heißen, sry

und

SetLayeredWindowAttributes(Handle, clLime, 0, LWA_COLORKEY);

<msdn>
Delphi-Quellcode:
function SetLayeredWindowAttributes(
  // Handle to the layered window.
  Wnd: hwnd;
  // Pointer to a COLORREF value that specifies the transparency
  // color key to be used when composing the layered window
  crKey: ColorRef;
  // Alpha value used to describe the opacity of the layered window
  Alpha: Byte;
  // Specifies an action to take
  // LWA_COLORKEY or LWA_ALPHA
  // This parameter can be one or more of the following values:
  dwFlags: DWORD): Boolean;
  stdcall; external 'user32.dll';
</msdn>

[edit]blubb, thx freak[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Transparente Form

  Alt 21. Jul 2005, 16:31
*barf00s ein Paar CodeTags schenkt*

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Transparente Form

  Alt 21. Jul 2005, 17:26
Danke euch beiden, die Lösung scheint bis jetzt einwandfrei zu klappen.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Transparente Form

  Alt 21. Jul 2005, 18:30
Also nach mehrmaligem Testen bleibt das Phänomen dennoch erhalten. Die Hintergrundfarbe scheint wieder durch und die Form wieder nicht auf Wunsch geschlossen.
  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 02:31 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