Announcement

Collapse
No announcement yet.

Tabs in Listbox

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabs in Listbox

    Hallo,

    ich möchte in einer Listbox 2 Felder je Zeile anzeigen, durch Tabstops getrennt, damit die Felder vernünftig untereinander stehen. Geht das ohne grossen Aufwand? Kleines Beispiel wäre nicht schlecht.

    Danke

    Werner

  • #2
    Hallo Werner,

    eine Möglichkeit wäre, den style der Listbox auf lbOwnerDrawFixed zu setzten und im OnDrawItem Ereignis die Formatierung per Hand zu machen. Das folgende Bsp. setzt als Feldtrenner ein '#' voraus.
    <br>
    procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;<br>
    Rect: TRect; State: TOwnerDrawState);<br>
    var<br>
    Text: string;<br>
    I: Integer;<br>
    begin<br>
    I := Pos('#', ListBox1.Items[Index]);<br>
    Text := Copy(ListBox1.Items[Index],1 , I-1);<br>
    ListBox1.Canvas.TextOut(Rect.Left, Rect.Top, Text);<br>
    Text := Copy(ListBox1.Items[Index],I + 1 , Length(ListBox1.Items[Index]) - I);<br>
    ListBox1.Canvas.TextOut(Rect.Left + 50, Rect.Top, Text);<br>
    end;<br>
    <br>

    Gruß Fal
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo,

      so viel Aufwand ist gar nicht nötig, wie das folgende Beispiel demonstriert:
      <pre>
      procedure TForm1.Button1Click(Sender: TObject);
      begin
      ListBox1.TabWidth := 25;
      ListBox1.Items.Add('A' + #9 + 'B');
      end;
      </pre&gt

      Comment


      • #4
        Hallo,

        danke für die schnelle Antwort. Habt mir beide sehr geholfen.

        Gruß

        Werne

        Comment

        Working...
        X