AGB  ·  Datenschutz  ·  Impressum  







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

ListBox & Co. Alpha-Transparent

Ein Thema von TERWI · begonnen am 4. Feb 2022
Antwort Antwort
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#1

ListBox & Co. Alpha-Transparent

  Alt 4. Feb 2022, 14:14
Vor einiger Zeit hatte ich den Gedanken, für meinen DVB-/Zattoo-Player neben EPG- und Info-Anzeige auch eine Programm-Auswahl-Box zu basten, die wie auf meiner SAT-STB aussieht: Leicht transparent mit hohem Schriftkontrast.

Die List-Box vom SwissDelphiCenter scheidet wegen bekannten Probs (die man lösen könnte) aus, das TJvTransparentPanel oder eine transparente Form ist nur transparent und hat dadurch mangelnden Kontrast zum Live-Bild.
Eine Form mit Alphablend macht auch die Schrift und alles andere durchsichtig.

Warum nicht beides nehmen ? Eine blanke Form mit bsNone und Alpablendvalue = 150, dazu eine gleich große, transparente Form (auch bsNone, TransparentColor passend setzen) oben passig drüber.
Dann eine selbstgemachte Listbox wie sonst auch in OnDrawItem (hier mit Logo-Icons) auf den transparenten Canvas zeichen, eine Scrollbar dazu .... fertig.

Sieht dann so aus wie im angehängten Bild.

Aber Obacht - ein paar Fallstricke !
Offensichtlich reagieren transparente Forms (und auch Panels) nicht auf Maus-Klicks im durchsichtigen Bereich - nur wenn man z.b. auf den selbstgezeichneten Text zielt !
Da das aber sehr lästig und nicht schön ist und man zwingend die Koordinaten des Mausklicks für die Berechnung der Position der Listeneinträge benötigt.

Abhilfe: Einfach das OnMouseUp oder Down als Event in beide Forms eintragen.
Die transparente gibt dann den Klick auf den Text zurück, die Alphablend-Form dann die Position sonstwo in der "Zeile".

Die Scrollbar ist nicht durchsichtig und wird wie gewöhnlich behandelt.

Zur Anregung zum nachmachen anbei die Unit aus meinem Proggie.
Ich hoffe, die Kommentare machen es deutlich.
Wir so nicht bei euch laufen, weil an mein Proggie angepasst und noch weitere Units fehlen.
Könnte man aber sicher ne universelle Komponente draus basteln.
Fragen ? Posten !
Miniaturansicht angehängter Grafiken
snapshot_1.jpg  
Angehängte Dateien
Dateityp: pas ZAT_CHLSEL.pas (9,8 KB, 16x aufgerufen)
  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 15:07 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