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/)
-   -   Delphi ListboxEinträge nicht übers Ende der Listbox hinaus zulassen (https://www.delphipraxis.net/14031-listboxeintraege-nicht-uebers-ende-der-listbox-hinaus-zulassen.html)

Lefko 31. Dez 2003 12:12


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 ;) )

neolithos 31. Dez 2003 12:18

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

Christian Seehase 31. Dez 2003 12:19

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.

Lefko 31. Dez 2003 12:21

Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
 
Zitat:

Zitat von Christian Seehase
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.

Ich muss dazu sagen, dass das eine Listbox mit Borderstyle = bsNone :)
da gibts doch keine Canvas??

MfG Lefko.

Christian Seehase 31. Dez 2003 12:26

Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
 
Moin Lefko,

Zitat:

Zitat von Lefko
...da gibts doch keine Canvas??

Gegenfrage:
Hast Du mal einen Blick in die Hilfe geworfen? ;-)

Lefko 31. Dez 2003 12:31

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 :)

Lefko 16. Feb 2004 09:37

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:
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;
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:

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...

neolithos 16. Feb 2004 11:47

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

teebee 16. Feb 2004 12:17

Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
 
Delphi-Quellcode:
ListBox.Canvas.Font := ListBox.Font
vorher reicht aus.

Gruß, teebee

Lefko 19. Feb 2004 13:52

Re: ListboxEinträge nicht übers Ende der Listbox hinaus zula
 
Danke, funktioniert wunderbar :)

MfG Lefko.


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