Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listbox formatieren (https://www.delphipraxis.net/145244-listbox-formatieren.html)

1carter1 27. Dez 2009 16:49


Listbox formatieren
 
Hi,

Ich arbeite gerade daran die ergebnisse aus einer datenbank in eine listbox zu schreiben, leider sieht das ergebnis z.B. so aus:

Zitat:

asdas i938s sad
tes di920 as
a2 sgho d
ich möchte aber dass alles untereinander steht also ca so: (ohne die punkte natürlich aber sonst zeigts das forum nicht an^^)
Zitat:

asdas.i938s.sad
tes...di920.as
a2....sgho..d
nun wollte ich fragen, wie ich das verwirklichen kann. hier mal mein code:

Delphi-Quellcode:
Listbox1.Items.Add(Row2[0] + ' ' + Row2[1] + ' ' + Row2[2]);
Ich würde mich über hilfe freuen.

MfG carTer

patti 27. Dez 2009 17:02

Re: Listbox formatieren
 
Evtl. könnte die Verwendung von Tabs helfen, also z.B. so:

Delphi-Quellcode:
Listbox1.Items.Add(Row2[0] + #09 + Row2[1] + #09 + Row2[2]);
Funktioniert aber nur bei nicht allzu großen Unterschieden bei der Länge der einzelnen Teil-Strings.

1carter1 27. Dez 2009 17:06

Re: Listbox formatieren
 
sry hätte ich vlt schreiben sollen aber das war das erste, dass ich probiert hatte^^ damit sind dann alle eingaben komplett nebeneinander also gar kein abstand^^

mfg carTer

markus5766h 27. Dez 2009 17:15

Re: Listbox formatieren
 
... sorry - völlig falsch ?????????? :gruebel:

patti 27. Dez 2009 17:41

Re: Listbox formatieren
 
Schau dir mal die Eigenschaft "TabWidth" der Listbox-Komponente an, damit lässt sich laut OH die Größe der Tabulatoren im Listenfeld ändern. Standardmäßig steht der Wert nämlich auf 0, wenn du ihn erhöhst, dann siehst du zumindest einen Abstand durch die Tabs. Vielleicht hilft ein passender Wert an dieser Stelle ja weiter...

RWarnecke 27. Dez 2009 17:45

Re: Listbox formatieren
 
Du könntest die Liste auch entsprechend selber Zeichnen. Stichwort dazu wäre Hier im Forum suchenOwnerDraw ListBox oder Delphi-Referenz durchsuchenOwnerDraw ListBox.

patti 27. Dez 2009 17:49

Re: Listbox formatieren
 
Das halte ich jedoch für ziemlich aufwendig, wenn es nur darum geht, die Schrift zu positionieren. Eine andere Möglichkeit wäre noch die Verwendung einer ListView-Komponente mit mehreren Spalten. So könntest du immer sicher sein, dass alles richtig angezeigt wird.

1carter1 27. Dez 2009 17:55

Re: Listbox formatieren
 
über listview bin ich vorhin schon gestoßen, aber komme damit nicht wirklich weiter, kannst du mir ein kleines beispiel zeigen, wie ich dort text reinschreibe usw?
danke schonmal,

carTer

patti 27. Dez 2009 18:04

Re: Listbox formatieren
 
Ja klar, kein Problem. Platziere eine ListView-Komponente auf deinem Formular. Anschließend erstellst du einpaar Spalten, halt soviele wie du später brauchst. Das machst du im Objekt-Inspektor bei der Eigenschaft "Columns" (einfach doppelt draufklicken - es öffnet sich ein Editor). Anschließend stellst du die Eigenschaft ViewStyle auf vsReport. Wenn du die Eigenschaft ShowColumnHeaders auf false stellst, dann kannst du die Header der Spalten auch ausblenden, per RowSelect = true kannst du außerdem erreichen, dass die Einträge irgendwo in der Zeile markiert werden können. Befüllten kannst du deine ListView-Komponente beispielsweise so:

Delphi-Quellcode:
var i : integer;
var e : TListItem;
begin
     //-- 
     for i := 0 to 4 do
     begin
          e := ListView1.Items.Add;
          //
          e.Caption := IntToStr(i);
          e.SubItems.Add('Hallo');
          e.SubItems.Add('Test');
     end;
Hoffe, das hilft dir schonmal weiter!

mfg
Patti

1carter1 27. Dez 2009 18:13

Re: Listbox formatieren
 
Vielen dank habs nun genau so hinbekommen wie ichs wollte, danke dir :)

MfG carTer


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 Uhr.
Seite 1 von 2  1 2      

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