![]() |
ListboxEinträge nicht übers Ende der Listbox hinaus zulassen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Freunde :hi: ,
ich hab ein Screenshot im Anhang, kann mir jemand sagen, wie man sowas am besten vermeiden kann? Ich hab schon den Eintrag auf 20 Zeichen begrenzt, aber die Zeichen sind ja unterschiedlich breit... jemand ne idee? MfG Lefko //PS: ich bin jetz erstmal verreist, also keine antworten erwarten von mir :) //PPS: Ich wünsch euch ne fette Sylvesterparty heut abend! :) Und denkt dran: Finger weg von Böllern! (eindeutig zweideutig ;) ) |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
mir fallen da zwei Möglichkeiten ein...
entweder rest abschneiden und durch 3 Punkte ersetzen oder schon bei der Eingabe prüfen obe der Textstring hinein passt |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Moin Lefko,
Du könntest mit Canvas.TextWidth feststellen, wie breit der Text in Pixeln ist, wenn er ausgegeben wird, unabhängig davon, wie viele Zeichen erumfasst, und daraufhin die Eingabe limitieren. |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Zitat:
da gibts doch keine Canvas?? MfG Lefko. |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Moin Lefko,
Zitat:
Hast Du mal einen Blick in die Hilfe geworfen? ;-) |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
mann Christian, du sitzt wohl vor dem Bildschirm und lauerst darauf, dass du endlcih wieder irgendwo antworten kannst, oder?? das dauert ja nicht mal 2 minuten......
"Juhuuu, schnell ne antwort posten!! jaaaa, endlich, schnell schnell schnell!!" ;) MfG Lefko. PS: ja, hab keinen blick in die hilfe geworfen, da müsste ich delphi anmachen, und das dauert mir grad zu lang, weil ich nur nen lahmen rechner hab und gleich verreise :) Dann weiss ihc ja jetzt, wie ich es machen muss :) |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Hm, hat gar nicht geklappt fällt mir mal auf nach ewigen Zeiten...
Bei diesem Code:
Delphi-Quellcode:
sagt mir die MessageBox (hier jetzt nicht mehr drin), dass z.B. der String "Der BESTE der WELT" nur 140 Pixel lang sei? Dieser String ist es aber beispielsweise, der in dem Screenie oben über den Rand der Listbox hinausgeht?! :gruebel:
repeat
Name := Inputbox('Namen eingeben!','Bitte geben Sie Ihren Namen ein!',''); if Name = '' then exit; if Form2.ShowList.Canvas.TextWidth(PunkteStr + ' ' + Name) > 200 then Showmessage('Ihr Name ist zu lang!'); until Form2.ShowList.Canvas.TextWidth(PunkteStr + ' ' + Name) <= 200; Kann mir irgendjemand dazu was sagen? hat das was mit dem Font zu tun? oder so? :wall: MfG Lefko //Edith sagt, ich sollte sagen, dass ich Comic Sans MS verwende... |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Ja der Font sollte in dem Canvas auch gerade gewählt sein.
Solche Prüfungen mach ich für gewöhnlich mit einem Temporären Canvas der das selbe Font-Object erhält |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Delphi-Quellcode:
vorher reicht aus.
ListBox.Canvas.Font := ListBox.Font
Gruß, teebee |
Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
Danke, funktioniert wunderbar :)
MfG Lefko. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 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