AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Transparent bei Checkboxen und Groupboxen
Thema durchsuchen
Ansicht
Themen-Optionen

Transparent bei Checkboxen und Groupboxen

Ein Thema von Chrissi91 · begonnen am 3. Nov 2005 · letzter Beitrag vom 7. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 18:17
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!
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 18:57
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...
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#3

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 19:51
Zitat von Martin K:
Gibt es vielleicht eine Color, die man nehmen kann, damit man eine Transparenz hat?
HiHo,

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:

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. LINK Für ein WinControl müsstet ihr da schon OnPaint an den Hintergrund kommen. Und das wird - wenn überhaupt - nur über ein dynamisches Bitmap-GraphicContol-Zeugs möglich sein, aus dem man die Caption besorgen kann. Arbeit über Arbeit!http://www.fedoraforum.de/html/emoticons/unsure.gif

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 19:55
Haben TLabels nicht immer die Property Transparent?
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#5

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 20:09
Zitat von 3_of_8:
Haben TLabels nicht immer die Property Transparent?
Klar, hast recht. Es geht bei Sir Thornberry aber um Alphatransparenz.

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
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  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: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 21:16
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: http://www.delphipraxis.net/internal...=444167#444167
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 21:31
Hallo,

unter http://www.pics-software.de/compon.htm gibt es zwei CheckBoxen, die transparent können (TSRCheckBox und TEnhancedCheckBox)

Vielleicht helfen dir diese ja weiter!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 21:33
wie dort bereits steht sind die Komponenten von TGraphicControl abgeleitet (eben wegen Transparenz) und können somit keinen Eingabefocus bekommen etc.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 21:36
Wie wärs denn eine Checkbox ohne Caption zu nehmen, und ein Label daneben um die Funktion zu beschreiben.
  Mit Zitat antworten Zitat
Benutzerbild von hanselmansel
hanselmansel

Registriert seit: 23. Feb 2005
Ort: Kaiserslautern
279 Beiträge
 
Delphi 2009 Enterprise
 
#10

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 21:37
Und wieder habe ich interessante Sachen dazugelernt. *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:
  1. Ich erstelle im Paint meiner Komponente ein TImage der Größe und der Position meiner Kompo.
  2. Da TImage ja ein GraphicControl ist, müsste im Canvas des Timage doch der Hintergrund zu finden sein.
  3. Diesen Hintergrund würde ich nun dem Canvas meines Controls zuweisen, und mit Brush.Color := bsClear darauf zeichnen.
  4. Fertig ist die, von TWinControl abgeleitete, transparente Komponente!
Wo ist der Haken an der Geschichte, wo es dann kracht?

MfG,

hanselmansel
Es gibt nur sehr wenige Probleme auf dieser Welt, die sich nicht mit einigen hundert Gramm Sprengstoff lösen ließen.
  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 12:53 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