AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TPngBitBtn mit WordWrap

Ein Thema von DCoderHH · begonnen am 17. Aug 2017 · letzter Beitrag vom 17. Aug 2017
Antwort Antwort
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#1

TPngBitBtn mit WordWrap

  Alt 17. Aug 2017, 12:02
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!
Miniaturansicht angehängter Grafiken
btn.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: TPngBitBtn mit WordWrap

  Alt 17. Aug 2017, 12:26
Woran liegt das?
Vermutlich daran, daß der als Vorlage dienende 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 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 TPngBitBtn .

Das gleiche gilt wohl auch für die anderen visuellen Komponenten der Library.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: TPngBitBtn mit WordWrap

  Alt 17. Aug 2017, 13:13
Vermutlich daran, daß der als Vorlage dienende 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...

Seitdem ein Standard 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 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.

Geändert von DCoderHH (17. Aug 2017 um 13:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: TPngBitBtn mit WordWrap

  Alt 17. Aug 2017, 14:25
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.

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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:07 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