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 Länge einer hor. Scrollbar abhängig von Einträgen (https://www.delphipraxis.net/46533-laenge-einer-hor-scrollbar-abhaengig-von-eintraegen.html)

Ramone 26. Mai 2005 17:37


Länge einer hor. Scrollbar abhängig von Einträgen
 
Hallo,
ich benutze in meinem Programm eine FileListBox und habe nun eine hor. Scrollbar eingebaut. Man muss jedoch im Delphi-Code die Länge festlegen:
Delphi-Quellcode:
SendMessage(FileListbox1.Handle, LB_SetHorizontalExtent, 1000, Longint(0));
Wie kann ich jetzt die Länge der Scrollbar abhängig von der Datei mit dem längsten Namen machen? Denn es werden ständig neue Dateien mit verschiedenlangen Namen hinzugefügt. Und einfach den Wert 1000 einfügen möchte ich auch nicht, da es nicht gerade schön aussieht.

Gruß

SirThornberry 26. Mai 2005 18:30

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
du musst alle items durchgehen und den längsten eintrag raussuchen. Dann davon die Länge nehmen. Wenn ein neuer Eintrag hinzu kommt prüfst du ob der neue eintrag länger ist, wenn dies der Fall ist bestimmt dieser neue Eintrag dann die länge ansonten bleibts beim alten

Ramone 26. Mai 2005 18:42

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
Genauso hab ich es gemacht, nur ist mir später eingefallen, dass man das gebrauchen kann, denn man überprüft ja nur die Anzahl des längsten Strings, sprich die Anzahl der Zeichen. D.h. bei einem String mit der Länge 35 bringt einem die Länge nichts, weil Scrollbar viel zu klein ist.

marabu 26. Mai 2005 18:49

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
Hallo Ramone,

mit ListBox.Canvas.TextWidth() erhältst du die Länge eines Strings in Pixeln unter Berücksichtigung der verwendeten Schrift. Den Maximalwert kannst du dann weiter verwenden.

Grüße vom marabu

Ramone 26. Mai 2005 18:56

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
Vielen Danke auch! :thumb:

Ramone 27. Mai 2005 12:32

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
Hallo nochmal,
ich habs jetzt so versucht:
Delphi-Quellcode:
l := FileListBox1.Canvas.TextWidth(IntToStr(x)); // x ist die Länge des längsten Strings in der ListBox.
ShowMessage(IntToStr(l)); // Nur zum Testen der Ausgabe
{bei der Stringlänge 48 kriegt "l" den Wert 12!?!?}
SendMessage(FileListbox1.Handle, LB_SetHorizontalExtent, l, Longint(0)); // Scrollbalken in Listbox
Auf jeden Fall funktioniert das nicht, da der Wer "12" natürlich viel zu klein ist. Hat jemand noch eine Idee?

Gruß

Ramone 27. Mai 2005 12:34

Re: Länge einer hor. Scrollbar abhängig von Einträgen
 
Sorry, für den Beitrag, aber mir ist gerade aufgefallen, das in x der Text des längsten Strings stehen muss, nicht die Länge. Ich denke, das war das Problem.


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