AGB  ·  Datenschutz  ·  Impressum  







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

STATIC Control transparent?

Ein Thema von Rastaman · begonnen am 14. Okt 2005 · letzter Beitrag vom 3. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#1

STATIC Control transparent?

  Alt 14. Okt 2005, 17:05
Moin. Ihr kennt doch sicher alle die Eigenschaft "Transparent" vom TLabel.
Weiss jemand wie ich das auch auf ne STATIC Control anwenden kann?
Also STATIC und nich TStaticText

Thx!
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:03
eine Ordentliche Transparenz kannst du darauf nur Bedingt anwenden da TStatic ein eigenes Fenster ist (handle) und TLabel nur ein Control welches sich auf die Canvas des Parenz malt.

Um deinen Effekt zu erreichen musst du WM_ERASEBKGND abfangen und die Message verwerfen. Und dann musst du bei den CreateParams zum Style ws_WS_EX_TRANSPARENT hinzufügen. Am besten du suchst mal wie man ein Panel Transparent bekommt (gabs öfters schon) und genau so geht es auch bei einem TStaticText (sollte es zumindest)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#3

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:12
Sie heisst WM_ERASEBKGND (Nur nachgeguggt, nich, dass Olli wieder denkt, dass ich Klugscheisse )
Aber wie verwerfe ich den Messages?
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:14
laut msdn "verwirfst" du die Message in dem du als Result einen Wert ungleich 0 beim Messagehandler zurück gibst.
Delphi-Quellcode:
procedure TStaticText.WMEraseBkgnd(var AMsg: TWMEraseBkgnd);
begin
  AMsg.result := 1;
end;
Aber wie geschrieben, einfach danach suchen wie es beim panel gemacht wird und du hast die lösung.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#5

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:17
Zitat von Gerrit89:
Also STATIC und nich TStaticText
Zitat von SirThornberry:
...und genau so geht es auch bei einem TStaticText (sollte es zumindest)
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:18
Bei TStaticText gibt es doch eigentlich schon ein property Transparent (was bei mir aber irgendwie nicht funktioniert)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#7

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:20
Es geht aber nicht um TStaticText, sondern um STATIC (keine VCL)
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:27
achso, wenns um Static geht hab ich ja schon gepostet wie es gehen sollte.
Dann musst du nicht die CreateParams überschreiben sondern gleich beim erzeugen beim Style das WS_EX_TRANSPARENT mit übergeben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#9

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:35
Da is leider kein Unterschied zu vorher

Zitat:
WS_EX_TRANSPARENT
Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted.

To achieve transparency without these restrictions, use the SetWindowRgn function.
Versteh ich nich so ganz ...

//Edit: Gibts auch sowas wie AutoSize fürn STATIC?
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: STATIC Control transparent?

  Alt 14. Okt 2005, 18:51
Zitat von Gerrit89:
Da is leider kein Unterschied zu vorher

Zitat:
WS_EX_TRANSPARENT
Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted.

To achieve transparency without these restrictions, use the SetWindowRgn function.
Versteh ich nich so ganz ...

//Edit: Gibts auch sowas wie AutoSize fürn STATIC?
dort steht in etwa das zuerst der Untergrund gemalt wird und danach erst dann das Fenster. Dadurch hast du den Untergrund von dem Fenster darunter.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:48 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