Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi On Screen Display? (https://www.delphipraxis.net/95078-screen-display.html)

Hedge 30. Jun 2007 12:19


On Screen Display?
 
Möchte in einem Programm ähnlich wie bei Fraps (FPS-Anzeige) bzw. bei nem Fernseher wenn man die Lautstärke verändert etwas über dem gerade dargestellten Anzeigebereich zeichnen (ohne Fenster)
Die Suche nach "on screen display" hat nichts verwertbares ergeben.

Eine Komponente wäre wohl am besten, aber ich konnte auch keine finden.

Gibt es in der Beziehung eine komfortable Lösung? (möchte Text und wenn möglich auch Bilder zeichnen)

alleinherrscher 30. Jun 2007 13:01

Re: On Screen Display?
 
Das einfachste ist n Formular bei dem du den Borderstyle auf bsnone setzt, die Eigenschaft Transparaent auf True und eine Transparent Color aussuchst z.B. dieses ekelige Pink, dann setzt du die Hintergrundfarbe der Form auf die selbe Farbe wie die Transparent color, schon ist das Formular "unsichtbar". Wenn du jetzt z.B. n Label einbaust, was reinschreibst und und die Textcolor des Labels nicht die transparent color der Form ist, wird nur das angezeigt, was im Label steht, ohne Form, geht auch mit Bildern etc. hilft dir das weiter?

Hedge 30. Jun 2007 13:20

Re: On Screen Display?
 
das schöne Pink nennt sich Fuchsia :)

Danke für die Tipps, genau das habe ich gesucht.

Wo das jetzt geschafft ist interessieren mich noch 2 Sachen:

1. Gibt es ne Komponente die Text schöner darstellen kann als TCaption z.B. mit Rand etc. ?

2. Das Form ist ja jetzt transparent und man kann überall hin klicken unter das Form, es sei denn man klickt genau auf den Text, dann wird das Event abgefangen und die Anwendung darunter ignoriert.
Ich möchte es jedoch vollkommen 'durchklickbar' machen. Das heißt, selbst wenn Jemand auf den Text klickt, soll das Mouse-Event an die Anwendung darunter geschickt werden. Wie kann man das realisieren?

alleinherrscher 30. Jun 2007 13:44

Re: On Screen Display?
 
Das wird dann schon etwas schwerer. Ich würde versuchen, zu ermitteln, welches Fenster unter "mir" liegt und dann per WindowMessage den Klick an das fenster senden...

Hedge 30. Jun 2007 13:47

Re: On Screen Display?
 
OK...Suche hat doch weitergeholfen...einmal:

Delphi-Quellcode:
SetWindowLong(Handle, GWL_EXSTYLE, getWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT or WS_EX_LAYERED);
im FormCreate oder sonstwo und die Sache ist gegessen.

Jetzt nur noch ne Komponente um Text anschaulich darzustellen und ich bin überglücklich :)

alleinherrscher 1. Jul 2007 11:31

Re: On Screen Display?
 
Hm... im Zweifelsfall würd ich mir ne schrift aus Bitmaps selber basteln... ich kenne sonst keine Delphi Kompo, mit der man schrift "verschönern" kann

arbu man 1. Jul 2007 12:08

Re: On Screen Display?
 
Zum Text Darstellen: es gibt noch das TPanel das hat einen Rand. Auch kannst du ein TShape als Rahmen verwenden.

mfg, Björn

_frank_ 1. Jul 2007 19:09

Re: On Screen Display?
 
ich hab mal vor einiger Zeit etwas derartiges gebastelt, was anhand eines Schriftzuges (Path) eine region definiert und daiese auf das Form anwendet:

http://www.fw-web.de/download.php?fi.../units/OSD.zip

HTH Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 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