Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   FreePascal Transparenter Button - aber "korrekt" (https://www.delphipraxis.net/185150-transparenter-button-aber-korrekt.html)

CCRDude 19. Mai 2015 09:57

Transparenter Button - aber "korrekt"
 
Ich suche jetzt schon eine Weile, finde auch reichlich "Tipps", die ich aber alle verwerfen musste.

Problem: ich brauche transparente Buttons. Die "Herausforderung" dabei ist, dass sie auch nutzbar sind - und zwar nicht nur für den Maus-User, sondern auch per Tastatur, inklusive Menschen mit Behinderung, d.h. die Buttons müssen auch den Fokus bekommen können, damit entsprechende Software ihren Text vorlesen kann!

Damit scheiden TSpeedButton und dutzende Fremdkomponenten, die sich damit rühmen, schonmal aus, TButton und TBitBtn haben kein Flat/Transparent-Property.

Mit einer Ableitung von TBitBtn oder TButtonControl kann ich in CreateParams den Style auf BS_COMMANDLINK setzen, damit habe ich den Vista+-Stil für Command Links, nur kommen die immer mit grünem Pfeil, und ich möchte am liebsten platformunabhängig agieren, kann auch den Pfeil nicht per BS_ICON/BM_SETIMAGE wegbekommen.

(PS: Cross-Post im Lazarus-Forum angelegt, da LCL ja schon recht speziell... ich wäre aber auch für Delphi-Lösungen dankbar, umsetzen kann ich dann vermutlich)

Mavarik 19. Mai 2015 09:59

AW: Transparenter Button - aber "korrekt"
 
Nimm doch einfach einen Label...

CCRDude 19. Mai 2015 10:27

AW: Transparenter Button - aber "korrekt"
 
Hmm danke, aber lies doch meine Anforderungen nochmal durch (habe das im Original jetzt auch nochmal unterstrichen).
Zitat:

d.h. die Buttons müssen auch den Fokus bekommen können, damit entsprechende Software ihren Text vorlesen kann!
TLabel basiert auf TGraphicControl, Fokus können aber nur von TWinControl abgeleitete Kompontenten erhalten (zumindest soweit ich das bisher verstanden habe).

Chris211183 19. Mai 2015 10:44

AW: Transparenter Button - aber "korrekt"
 
Bin zwar nicht so der Krack, wie die meisten hier, aber hast Du schonmal geguckt, ob Dir eventuell TCustomPanel weiter hilft ?

Hatte auch schon mal das Problem mit dieser Ableitungshirarchie bei der Verwendung mehrer Komponenteneigenschaften...

Viele Grüße

himitsu 19. Mai 2015 10:45

AW: Transparenter Button - aber "korrekt"
 
Transparent = die Komponente zeichnet sich an der Stelle garnicht
oder Transparent = die Komponente bringt ihren Parent dazu auf sich das Abbild das Parents malen zu lassen, womit es durchsichtig wirkt

CCRDude 19. Mai 2015 12:15

AW: Transparenter Button - aber "korrekt"
 
@Chris211183: TCustomPanel ist zumindest von TWinControl abgeleitet, danke für die Idee! Ohne Focus- und MouseOver-Effekte ist das sogar blitzschnell umgesetzt. Ich versuche es mal ein wenig in die Richtung :)

@himitsu: eher wohl das zweite, aber beides wären Ansätze, mit denen ich arbeiten könnte.

Chris211183 19. Mai 2015 12:24

AW: Transparenter Button - aber "korrekt"
 
gerne ! Sag mal bitte Bescheid, ob es geklappt hat ! Würde mich interessieren

CCRDude 20. Mai 2015 12:40

AW: Transparenter Button - aber "korrekt"
 
So, nachdem ich mit dem TCustomPanel angefangen habe, bin ich dann doch direkt den Schritt zu TCustomControl auch noch gegangen. Fokus lässt sich ja "einfach" lösen - dank DrawFocusRect. Um das theme-kompatibel zu gestalten, könnte ich vermutlich UXTheme verwenden, aber ich will ja erstmal platformunabhängig arbeiten.

Kurz zusammengefasst also: erstmal scheint es, als ob das von Grund auf neu zu machen doch nicht so komplex war, wie ich befürchtet hatte.

EWeiss 20. Mai 2015 17:17

AW: Transparenter Button - aber "korrekt"
 
Zitat:

Zitat von CCRDude (Beitrag 1302304)
Fokus lässt sich ja "einfach" lösen - dank DrawFocusRect.

Hä?
Was hat DrawFocusRect mit dem setzen des Focus an sich zu tun?
Denke mal gar nichts.
Zitat:

Um das theme-kompatibel zu gestalten, könnte ich vermutlich UXTheme verwenden, aber ich will ja erstmal platformunabhängig arbeiten.
Was nennst du platformunabhängig ?
Du möchtest deine Anwendung erstellt unter Windows auf nen Mac ausführen?
Auf anderen Systemen bringt es dir eh nichts diese verwenden die Themes von Windows nicht.

gruss

Namenloser 20. Mai 2015 20:49

AW: Transparenter Button - aber "korrekt"
 
Zitat:

Zitat von CCRDude (Beitrag 1302114)
TLabel basiert auf TGraphicControl, Fokus können aber nur von TWinControl abgeleitete Kompontenten erhalten (zumindest soweit ich das bisher verstanden habe).

Delphi-Referenz durchsuchenTStaticText
Ist wie TLabel aber ein echtes WinControl. Ich glaube, das hat sogar eine Transparent-Eigenschaft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
Seite 1 von 2  1 2      

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