Announcement

Collapse
No announcement yet.

TlistBox und der Index

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

  • TlistBox und der Index

    Hallo,

    ich würde gerne in meiner TListBox die Indexes selber bestimmen. Diese 0,1,2,4,... Werte finde ich zu umständlich, ich löse das momentan so, dass ich bei Listenerzeugung ein Array erstelle, so das der Index auf den Eintrag im Array zeigt. Klappt zwar auch, aber mir wäre doch lieber, wenn ich den Index direkt modifiziere könnte um sofort den Wert im Index zu haben.

    Ich habe das schon versucht, bekomme aber ne Exception zurück wenn ich versuche einen index zu setzen. Weiss gerade nicht genau was ich versucht habe, da ich immo auf der Arbeit bin und meinen Code nicht hier habe.

    Wäre über ein kleines Beispiel erfreut.
    In meiner Liste stehen halt Namen, und der Index soll dann die ID des Namens sein. So das der Index mir direkt die ID des selektierten Namens gibt.

    MfG
    Maikel

  • #2
    Hallo,

    die Indizies kannst du nicht selber bestimmen, sie stehen ausschließlich für die Position der Strings in der Listbox.

    Es gibt aber die Methode <b>AddObject</b>. Damit kannst du der (sichtbaren) Zeile ein (unsichtbares) Objekt mitgeben und wieder auslesen. Hier ein Beispiel für das Speichern von Integern (z.B. Kundennummern):

    <pre>
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    listbox1.Items.AddObject('Mustermann', TObject(211));
    listbox1.Items.AddObject('Müller', TObject(1512));
    listbox1.Items.AddObject('Meier', TObject(3467));
    end;
    </pre>
    <pre>

    procedure TForm1.Button2Click(Sender: TObject);
    var
    id: integer;
    begin
    id:=Integer(listbox1.Items.Objects[listbox1.itemindex]);
    showmessage(listbox1.Items[listbox1.itemindex] + ' hat die ID ' + inttostr(id));
    end;
    </pre>

    Gruß Ul

    Comment


    • #3
      Hallo,

      danke für deine Antwort, ich werde mir das mal genauer ansehen.

      MfG
      Maike

      Comment

      Working...
      X