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 Scrollkomponente (https://www.delphipraxis.net/50935-scrollkomponente.html)

Kompon Ente 3. Aug 2005 08:46


Scrollkomponente
 
Hallo,

ich hab grad versucht der ListBox zuzuweisen, dass sie horizontal scrollt, aber die scrollt nur vertikal - finde dort keine Eigenschaft.

Memo's können das auch nicht, oder?

Weil ich möchte ein paar Dateien auflisten, und wenn die über die Breite des Feldes hinübergehn, sieht man nicht mehr alles.

Ich brauche 'ne Kompo, die auch horizontal scrollt - kann jemand helfen? :|

xaromz 3. Aug 2005 08:56

Re: Scrollkomponente
 
Hallo,

klar geht das mit einem Memo:

WordWrap auf False stellen, Scrollbars auf ssHorizontal bzw. ssBoth stellen.

Gruß
xaromz

Phistev 3. Aug 2005 09:16

Re: Scrollkomponente
 
TListbox kann das auch, einfach die Eigenschaft Delphi-Referenz durchsuchenColumns größer 0 setzen:
Zitat:

Zitat von Delphi-Hilfe
Mit Columns können Sie festlegen, wie viele Spalten eines mehrspaltigen Listenfeldes ohne Verwendung der horizontalen Bildlaufleiste sichtbar sind.

Mehrspaltige Listenfelder verfügen über eine horizontale Bildlaufleiste, mit deren Hilfe Spalten angezeigt werden können, die nicht mehr in den Bildschirmausschnitt passen. Der Standardwert 0 für Columns bedeutet, dass das Listenfeld nicht mehrspaltig ist. Der Bildschirmausschnitt kann in diesem Fall nur vertikal verschoben werden. Die Liste der Einträge wird nicht umbrochen.


Kompon Ente 3. Aug 2005 09:49

Re: Scrollkomponente
 
Funktioniert aber nicht @ LB ;)

Sharky 3. Aug 2005 09:50

Re: Scrollkomponente
 
Zitat:

Zitat von Kompon Ente
... Ich brauche 'ne Kompo, die auch horizontal scrollt - kann jemand helfen? :|

Ja, die TListBox ;-)

Delphi-Quellcode:
procedure SetLBScrollbar(aValue: TListBox);
var
  ndx, curentWidth, MaxWidth: integer;
begin
  MaxWidth := 0;
  for ndx := 0 to aValue.Items.Count - 1 do
  begin
    curentWidth := aValue.Canvas.TextWidth(aValue.Items.Strings[ndx] + 'x');
    if MaxWidth < curentWidth then
      MaxWidth := curentWidth;
  end;
  SendMessage(aValue.Handle, LB_SETHORIZONTALEXTENT, MaxWidth, 0);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetLBScrollbar(ListBox1);
end;


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