Einzelnen Beitrag anzeigen

OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

ComboBox.ItemIndex aus dem Objekt?

  Alt 12. Mär 2014, 22:15
Hallo,

weiß gar nicht wie ich das Thema richtig nennen soll. Auf jeden Fall ich hab hier eine Sache wo ich nicht mehr weiter komme. Ich lade wie folgt aus einer DB-Tabelle den Namen und die ID eines Autors in eine ComboBox. Nun möchte ich das so haben, dass der ItemIndex der ComboBox das ist wo im Object die "id_author" steht. Wie mache ich das nur?

z.B. hier der Inhalt der ComboBox:

0, leere Zeile
1, Herr Werber (1 ist die id_author, also in der ersten Spalte stehen die IDs, außer der 0)
2, Frau Merkl
5, Herr Nold

Nun soll der Autor mit der ID 5 angezeigt werden, die ItemIndex soll also die 3 sein. Wie erfahre ich also, dass die 5 in der dritten Zeile steht?

Danke für eure Hilfe!


Delphi-Quellcode:
// Datensaetze der Tabelle author holen
Form2.AuthorComboBox.Clear;
Form2.AuthorComboBox.Items.AddObject(' ', TObject(0));
tb := db.GetTable('SELECT * FROM author');
  try
    if tb.Count > 0 then
    begin
      while not tb.EOF do
      begin
        Form2.AuthorComboBox.Items.AddObject(tb.FieldAsString(tb.FieldIndex['aname']), TObject(tb.FieldAsInteger(tb.FieldIndex['id_author'])));
        tb.Next;
      end;
    end;

  finally
    tb.Free;
  end;

...

   // Datensatz der Tabelle media holen
      tb := db.GetTable('SELECT * FROM media WHERE id_media='+idinb+' ');
      try
        if tb.Count > 0 then
        begin

          // Das war bisher und ist falsch!!!!
          Form2.AuthorComboBox.ItemIndex := tb.FieldAsInteger(tb.FieldIndex['fk_author_id']);
          
          // Hier will ich es richtig machen, aber es knallt...
          Form2.AuthorComboBox.ItemIndex := hier möchte ich den Autor mit der fk_author_id=5 anzeigen, also den Herrn Nold


        end;
      finally
        tb.Free;
      end;
...

Geändert von OrNEC (12. Mär 2014 um 22:43 Uhr)
  Mit Zitat antworten Zitat