![]() |
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:
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.
SendMessage(FileListbox1.Handle, LB_SetHorizontalExtent, 1000, Longint(0));
Gruß |
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
|
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.
|
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 |
Re: Länge einer hor. Scrollbar abhängig von Einträgen
Vielen Danke auch! :thumb:
|
Re: Länge einer hor. Scrollbar abhängig von Einträgen
Hallo nochmal,
ich habs jetzt so versucht:
Delphi-Quellcode:
Auf jeden Fall funktioniert das nicht, da der Wer "12" natürlich viel zu klein ist. Hat jemand noch eine Idee?
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 Gruß |
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 03:54 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