![]() |
Zeilen in einer Listbox auf eine GEMEINSAME Breite verkürzen
Hallo Community,
Ich habe folgendens Problem: Ich möchte alle Zeilen in einer Listbox auf eine Breite verkürzen, was jedoch nur bedingt bei mir funktioniert und damit nicht meinem Wunsch entspricht. Ich hatte mir vor kurzem eine eigene Procedure dafür geschrieben, danach einige aus dem Forum benutzt, jedoch wurden nicht alle Strings bei einer bestimmten vorgeschriebenen Breite abgeschnitten. Einige Zeilen waren länger als andere, was mich total stört, da es so kein schönes Aussehen darstellt^^ Ich weiß, dass man dabei mit Canvas.TextWidth() arbeitet, was ich selbst ja bereits in meiner procedure getan habe, aber trotzdem ist diese Methode nicht so exakt. Bitte helft mir...^^ mfg Nogge |
Re: Zeilen in einer Listbox auf eine GEMEINSAME Breite verkü
auf ganz genau die gleiche länge bekommst du es nur wenn du eine schriftart verwendest wo alle zeischen gleich breit sind oder in jeder zeile das gleiche steht. Ich benutz folgende Funktion (vor langer zeit mal selbst geschrieben da man sowas doch häufig braucht)
Delphi-Quellcode:
function getPunktPunktText(Text: String; Leinwand: TCanvas; maxbreite: Integer; PointCount: Byte = 3): String;
var LPoints: String; begin setlength(LPoints, PointCount); FillChar(LPoints[1], PointCount, Integer('.')); LPoints := LPoints + ' '; if (length(text) > 4) and (leinwand.TextWidth(text) > maxbreite) then begin while (length(text) > 4) and (leinwand.TextWidth(text + LPoints) > maxbreite) do text := copy(text, 1, length(text)-1); text := text + LPoints; end; result := Text; end; |
Re: Zeilen in einer Listbox auf eine GEMEINSAME Breite verkü
Vielen Dank SirThornberry !
Das mit der Schrift wollte ich hören. Die Function ist genauso eine, wie ich sie selbst gebaut und im Forum gefunden hab^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 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