![]() |
Transparent bei Checkboxen und Groupboxen
Hallo,
angenommen ich habe ein Bild als Hintergrund und habe auf der Form mehrere Checkboxen und Groupeboxen. Bei vielen Standardcomponenten ist die Funktion im Objektinspektor vorhanden (Transparent). Aber es muss doch auch für andere Komponenten diese Funktion geben. Danke schon im Vorraus! ;) |
Re: Transparent bei Checkboxen und Groupboxen
Es wäre wirklich gut, wenn einer mal was Nützliches zu diesem Thema schreiben könnte.
Hab das gleiche Problem: Ich wollte nämlich mal Buttons transparent machen, damit man das Hintergrundbild sieht. Bin dann aber auf SpeedButtons ungestiegen, da diese die Eigenschaft "Transparent" im Object Inspector haben. Einziger Nachteil, SpeedButtons haben keinen TabStop. Weiß jemand, wie man allgemein, bei allen Componenten die Eigenschaft "Transparent" hinzufügen kann? Gibt es vielleicht eine Color, die man nehmen kann, damit man eine Transparenz hat? @Chrissi91: :? Sorry, dass ich dir nicht helfen konnte... |
Re: Transparent bei Checkboxen und Groupboxen
Zitat:
so einfach ist es mit Transparenz leider nicht. Es kann sein, dass ich mich im Folgenden tierisch täusche, und dann von denen die Ahnung haben, gehauen werde, aber ich will mich mal versuchen: :duck: Es gibt den Unterschied zwischen GraphicControls und WinControls. Erstere haben den Vorteil, dass zu Beginn der Paint-Methode der Hintergrund in die Caption kopiert wird, somit also verfügbar ist, um Transparenz zu erzeugen. Ein WinControl (Win steht für "windowed" o.ä.) hat sowas nicht, und wird auch anders gezeichnet. Dafür hat das WinControl den Vorteil, den Fokus bekommen zu können. Sir Thornberry hat ein Label gekapselt, welches über Alpha Transparenz verfügte, wobei es sich hierbei um ein GraphicControl handelt. ![]() ![]() hanselmansel |
Re: Transparent bei Checkboxen und Groupboxen
Haben TLabels nicht immer die Property Transparent?
|
Re: Transparent bei Checkboxen und Groupboxen
Zitat:
Ich habe mir die Ursprungsfrage noch einmal angeguckt, in der es darum ging, z.B. eine Checkbox transparent zu machen. Hier müsste aber theoretisch das selbe Problem bestehen. Wenn das control gezeichnet wird, bekommt das Canvas die Backgroundfarbe, dann wird das eigentliche Control gezeichnet nur damit anschließend die Caption auf die Form geklebt werden kann. AFAIK hast du dabei nicht den Hintergrund zur Verfügung, den du allerdings bräuchtest, um es transparent zu zeichnen. Vieleicht guckt ihr euch die Paint-Methoden vom Label und seinen Vorgängern an, um zu gucken, wie die VCL das macht. [€dit]Ich bin doch blöde! Das Label ist GraphicControl, hat also kein Problem damit, seinen hintergrund zu kennen...[/€dit] MfG, hanselmansel |
Re: Transparent bei Checkboxen und Groupboxen
Hanselmann hat es so ziemlich auf den Punkt gebracht und zu fast 100% richtig erklärt. Ein was im eigentlichen Sinne ein Fenster ist (also so ziemlich jedes Control was ein Handle hat) zeichnet auf die eigene Canvas und da ist es fast unmöglich an den Untergrund heran zu kommen. Ein Control ohne Handle (Label etc.) zeichnet sich auf die Canvas des Parents und da der Parent sich vorher zeichnet hat man den Untergrund zur Verfügung und kann somit mit Transparenz spielen. Wenn man unbedingt eine Checkbox benötigt die Transparent ist kann man eignetlich auch einfach von TGraphicControl ableiten und selbst eine Checkbox mit Schrift auf die Canvas malen. Es gibt auch noch die möglichkeit mit WS_EX_TRANSPARENT bei den CreateParams das Fenster dazu zu bringen das es den Untergrund vom Parent hat. Allerdings ist dann auch noch überschreiben von Paint etc. angesagt weil die Methoden standardmäßig den Hintergrund übermalen. Und mit Doublebuffered und so kanns dann trotzdem zu problemen kommen das es nicht wirklich transparent ist weil es sich dabei nur um eine Fast-Transparenz handelt die nicht richtig funktioniert.
Eine etwas ausführlichere Erklärung warum das mit dem Transparent bei dem einen Control geht und bei dem anderen nicht gibts hier: ![]() |
Re: Transparent bei Checkboxen und Groupboxen
Hallo,
unter ![]() Vielleicht helfen dir diese ja weiter! |
Re: Transparent bei Checkboxen und Groupboxen
wie dort bereits steht sind die Komponenten von TGraphicControl abgeleitet (eben wegen Transparenz) und können somit keinen Eingabefocus bekommen etc.
|
Re: Transparent bei Checkboxen und Groupboxen
Wie wärs denn eine Checkbox ohne Caption zu nehmen, und ein Label daneben um die Funktion zu beschreiben. :gruebel:
|
Re: Transparent bei Checkboxen und Groupboxen
Und wieder habe ich interessante Sachen dazugelernt. :-D *freu* Aber wo wir gerade beim Thema sind: Angenommen, ich hätte die fixe Idee, eine Komponente von TCheckBox abzuleiten, die nicht nur ein Handle hat, sondern auch transparent ist. Das u.a. die Paint-Methode überschrieben werden muss ist klar, doch nun frage ich mich, weshalb es so unmöglich ist Transparenz zu erzeugen. Ohne irgendetwas ausprobiert zu haben, habe ich mir folgendes überlegt:
MfG, hanselmansel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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