2010-02-10 5 views
9

ich die TCheckListBox Steuerung verwenden und möchte eine zweite Säule auf diese verwenden, aber neben der Spalt und Header-Eigenschaften, konnte ich keine Quelle auf Einfügen die mehrspaltigen Inhalte ...Wie verwende ich mehrere Spalten auf TCheckListBox?

Es kann finden sehen wie eine noobie Frage aus, aber Delphis Hilfe hat keinen Inhalt auf diesem und meine Suchen (auf Google und SO) brachten viel Abfall ...

Ich benötige nur ein Beispiel.

+2

@Fabricio zu füllen fließen, die TCheckListBox nur effektiv eine Spalte von Daten, die Spalten-Eigenschaft wird nur verwendet, um die Elemente in eine andere Spalte zu wickeln. – RRUZ

+0

Ich folge dem Listview-Pfad, den ulrichb angezeigt hat. –

Antwort

20

Dies ist mit einem TCheckListBox nicht möglich.

Aber Sie könnten eine TListView verwenden.

Setzen Sie die ViewStyle-Eigenschaft auf vsReport und Checkboxes auf True.


Um die Spalten zu erstellen und die Elemente hinzufügen:

procedure TFormMain.Button1Click(Sender: TObject); 
var 
    Item1, Item2: TListItem; 
begin 
    ListView1.Columns.Add.Caption := 'aa'; 
    ListView1.Columns.Add.Caption := 'bb'; 

    Item1 := ListView1.Items.Add; 
    Item1.Caption := 'item1'; 
    Item1.SubItems.Add('subitem1'); 

    Item2 := ListView1.Items.Add; 
    Item2.Caption := 'item2'; 
    Item2.SubItems.Add('subitem2'); 
    Item2.Checked := True; 
end; 


Sieht aus wie:

list view with checkboxes http://img638.imageshack.us/img638/4681/clipboard01y.png

+0

Hmmm ... Es ist eine interessante Idee. Ich werde das morgen erforschen. –

8

Ich könnte falsch sein, aber ich dachte, dass die Spalten für die Verpackung eher waren als für Formatierungszwecke.

zB

Stellen Sie die Anzahl der Spalten 2 hinzufügen 3 oder 4 Elemente das Feld Ändern der Größe vertikal und Sie werden sehen, die Elemente der Spalten

+1

+1, @Mark Sie sind nicht falsch. ;) – RRUZ

+0

Ja aber es wickelt sich eh auch wenn du es nicht willst. Ich ändere die Größe vertikal und anstelle einer vertikalen Bildlaufleiste, die Sinn machen würde, bekomme ich eine dumme horizontale Bildlaufleiste, obwohl Spalten auf 1 gesetzt ist. Eine möglicherweise nützliche Komponente, die wegen schlechten Designs in den Papierkorb geworfen wird. –

Verwandte Themen