![]() |
[Statusbar] Breite eines Panels
Hallo DP,
ich habe ein Problem mit meiner Statusbar. Da ich die Breite des Textes nicht kenne, muss ich diese erst ermitteln. Mir stellt sich jetzt die Frage, wie man das aber macht? Zuerst dachte ich, nehme die TextWidth Eigenschaft. Und netterweise hat die Statusbar ein Canvas. Aber damit sind alle Panel etwas zu klein. Also habe ich hier gesucht, und bin darauf gestoßen: ![]() Aber weder mit noch ohne eingeschalteter Eigenschaft ist es zu klein! MfG xZise |
Re: [Statusbar] Breite eines Panelss
Hallo,
Mache diese Font Zuweisung vor dem Aufrufen des TextWidth(...)
Delphi-Quellcode:
StatusBar.Canvas.Font := StatusBar.Font;
|
Re: [Statusbar] Breite eines Panelss
Zitat:
MfG xZise |
Re: [Statusbar] Breite eines Panels
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bins nochmal, und zwar sieht das ein bisschen "gedrängt" aus?
Als fehle da der Rahmen um die "Rahmen". MfG xZise |
Re: [Statusbar] Breite eines Panels
Angelehnt an die
![]() (verwendet anstatt die von shima verwendete TrueFontWidth Funktion Canvas.Font := Font)
Delphi-Quellcode:
uses
CommCtrl; procedure AutoSizeStatusbarPanels(sb: TStatusbar); var iPanel: Word; borders : array[0..2] of Integer; begin With sb do begin // Don't deal with simple panels if SimplePanel then Exit; // Assign the Font to Canvas.Font Canvas.Font := Font; // get the Borders of the Statusbar // border[2] = Width of the Border between Rectangles SendMessage(Handle, SB_GETBORDERS, 0, Integer(@borders)); for iPanel := 0 to Panels.Count -2 do // Don't resize the last panel begin // Calculate the Width of the Panel Panels.Items[iPanel].Width := Canvas.TextWidth(Panels.Items[iPanel].Text) + borders[2] * 2 + 3; // Vertical Border * 2 + 3 extra Pixels end; end; end; |
Re: [Statusbar] Breite eines Panels
Damit funktioniert es jedenfalls unter Vista.
Ich weiß nicht wie das nachher mit anderen Styles ist. MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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