Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listbox mit Scrollbar - Länge von Scrollbar einstellen (https://www.delphipraxis.net/77065-listbox-mit-scrollbar-laenge-von-scrollbar-einstellen.html)

benst 14. Sep 2006 09:52


Listbox mit Scrollbar - Länge von Scrollbar einstellen
 
Hi,
mit folgendem Code
Delphi-Quellcode:
SendMessage(Listbox1.Handle, LB_SETHORIZONTALEXTENT, 140, 0);
bekomme ich eine Scrollbar in eine Listbox. Wie kann ich es aber anstellen, dass die Scrollbar an den Inhalt angepasst wird? Also, dass wenn der Text länger wird, die Scrollbar dann auch bis dahin scrollen kann - es wäre ja blöd einfach eine breite von 50000 einzutragen...
Ben
P.S.: Delphi 5 Standard

SirThornberry 14. Sep 2006 09:57

Re: Listbox mit Scrollbar - Länge von Scrollbar einstellen
 
es wird nix anderes übrig bleiben als alle eintrage durch zu gehen und mit Canvas.TextWidth die Breite des Textes zu ermitteln. Der breiteste Eintrag ist dann die Grundlage für die Breite der Scrollbar
Delphi-Quellcode:
var
  lCount,
  lWidth : Integer;
begin
  lWidth := 0;
  ListBox1.Canvas.Font.Assign(ListBox1.Font);
  for lCount := 0 to ListBox1.Items.Count - 1 do
    lWidth := Max(lWidth, Listbox1.Canvas.TextWidth(ListBox1.Items.Strings[lCount]));
  SendMessage(Listbox1.Handle, LB_SETHORIZONTALEXTENT, lWidth + 20, 0);

benst 14. Sep 2006 10:13

Re: Listbox mit Scrollbar - Länge von Scrollbar einstellen
 
Danke (Hatte keine Ahnung, wie man die Breite von Text bestimmt, aber jetzt bin ich mal wieder ein klein wenig schlauer. :-D )
Ben


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