AGB  ·  Datenschutz  ·  Impressum  







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

TPanel transparent ?

Offene Frage von "Marvel"
Ein Thema von smart · begonnen am 29. Jan 2005 · letzter Beitrag vom 5. Mai 2008
Antwort Antwort
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: TPanel transparent ?

  Alt 3. Jun 2005, 07:35
da es eine Komponente ist, ist da nix mit aufrufen sonder du musst eine Instanz erstellen.
[Edit]
So ganz 100% funktioniert das bei mir auch nicht.
Ich habe einen Button auf mein Form gepackt, darüber dieses Panel und auf das Panel dann leicht versetzt einen zweiten button (so das der Button auf dem Panel einen Teil von Button 1 überdeckt).
Beim ersten Klick auf Button2 (der auf dem Panel) erscheint Button1 während der Button2 gedrückt ist über Button2.
[/Edit]

[Edit2]
Ich hab noch ein wenig probiert und das Problem herausgefunden. Sobald sich ein Control unter dem Panel neu zeischnet, zeischnet sich das Panel danach nicht neu. Wenn man also unter dem Panel einen Button hat und davon die Caption ändert dann malt sich der Button neu über die Controls die auf dem Panel legen (als würde der Button unter dem Panel über allem drüber liegen).

Und wenn man einen Alphaeffekt erzielen will funktioniert das auch nur beim ersten mal denn beim Repaint des Panels wird der Untergrund nicht zuvor gemalt. Somit würde man bei 50% Transparenz beim nächsten Repaint die bereits geblendet Fläsche nocheinmal blenden (in meinem Beispiel hab ich mit Rot geblendet und somit wird das Rot immer intensiver bis man nicht mehr sieht was unter dem Panel ist.)
[/Edit2]

[Edit3]
Ich hab mal das Beispielproject angehängt. In die Paint Methode des neuen Panels hab ich noch das Alphablend eingefügt um das ganze zu verdeutlichen
Delphi-Quellcode:
  LBitmap := TBitmap.Create;
  LBitmap.Width := 1;
  LBitmap.Height := 1;
  LBitmap.Canvas.Pixels[0,0] := clRed;
  LBlendStruct.BlendOp := AC_SRC_OVER;
  LBlendStruct.BlendFlags := 0;
  LBlendStruct.SourceConstantAlpha := 127;
  LBlendStruct.AlphaFormat := 0;
  windows.AlphaBlend(Canvas.Handle, 0, 0, Width, Height, LBitmap.Canvas.Handle, 0, 0, LBitmap.Width, LBitmap.Height, LBlendStruct);
  LBitmap.Free;
ZipDatei einfach entpacken und Projekt starten (compilieren).
[/Edit3]
Angehängte Dateien
Dateityp: zip example_137.zip (4,4 KB, 272x aufgerufen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 19:59 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