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/)
-   -   TPngBitBtn mit WordWrap (https://www.delphipraxis.net/193585-tpngbitbtn-mit-wordwrap.html)

DCoderHH 17. Aug 2017 11:02

TPngBitBtn mit WordWrap
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe mir eben die PngComponents von Uwe Raabe (https://bitbucket.org/uweraabe/pngcomponents) heruntergeladen und nutze einen TPngBitBtn mit WordWrap = true. Doch leider bricht der Text nicht um. Woran liegt das? Wie bekomme ich den Umbruch hin? Danke!

Uwe Raabe 17. Aug 2017 11:26

AW: TPngBitBtn mit WordWrap
 
Zitat:

Zitat von DCoderHH (Beitrag 1378916)
Woran liegt das?

Vermutlich daran, daß der als Vorlage dienende
Delphi-Quellcode:
TBitBtn
zu Delphi 7 Zeiten das ebenfalls noch nicht implementiert hatte. Da das in den seitdem vergangenen Jahren offenbar niemand benutzt hatte ist das bis jetzt auch nicht aufgefallen.

Seitdem ein Standard
Delphi-Quellcode:
TButton
seit einiger Zeit ja auch ein Bildchen haben kann und diese ja bequem über die ImageList (auch PngImageList) bereit gestellt werden können, stellt sich schon die Frage nach der Sinnhaftigkeit des
Delphi-Quellcode:
TPngBitBtn
.

Das gleiche gilt wohl auch für die anderen visuellen Komponenten der Library.

DCoderHH 17. Aug 2017 12:13

AW: TPngBitBtn mit WordWrap
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1378922)
Vermutlich daran, daß der als Vorlage dienende
Delphi-Quellcode:
TBitBtn
zu Delphi 7 Zeiten das ebenfalls noch nicht implementiert hatte. Da das in den seitdem vergangenen Jahren offenbar niemand benutzt hatte ist das bis jetzt auch nicht aufgefallen.

Also der TBitBtn von D10 bricht den Text um. Ich hab jetzt mal in den Code vom TPngBitBtn geguckt und in der Prozedure TPngBitBtnStyleHook.DrawButton gibt es den Code:
Code:
  LFormats := TTextFormatFlags(DT_NOCLIP or DT_CENTER or DT_VCENTER
    or btn.DrawTextBiDiModeFlags(0) or WordBreakFlag[btn.WordWrap]);
Es sieht als so aus, als ob WordWrap behandelt wird. Merkwürdigerweise kann ich dort aber keinen Breakpoint drauf setzen...

Zitat:

Zitat von Uwe Raabe (Beitrag 1378922)
Seitdem ein Standard
Delphi-Quellcode:
TButton
seit einiger Zeit ja auch ein Bildchen haben kann und diese ja bequem über die ImageList (auch PngImageList) bereit gestellt werden können, stellt sich schon die Frage nach der Sinnhaftigkeit des
Delphi-Quellcode:
TPngBitBtn
.

Danke, diese Neuheit ist komplett an mir vorbei gegangen. Allerdings gefällt mir da die Ausrichtung des Bildes nicht, wenn es über der Caption angezeigt wird. Damit es schön aussieht, muss da mit den ImageMargins gearbeitet werden. Die aber wieder komplett geändert werden müssen, wenn der Button in der Größe verändert wird.

Uwe Raabe 17. Aug 2017 13:25

AW: TPngBitBtn mit WordWrap
 
Zitat:

Zitat von DCoderHH (Beitrag 1378930)
Also der TBitBtn von D10 bricht den Text um.

Deswegen mein Verweis auf Delphi 7, unter dem der ursprüngliche Entwickler die Library noch gepflegt hat.

Zitat:

Zitat von DCoderHH (Beitrag 1378930)
in der Prozedure TPngBitBtnStyleHook.DrawButton gibt es den Code

Der StyleHook wird zwar nur bei aktivem VCL-Style verwendet, aber auch dort ist noch ein Fehler drin.


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