Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie auf den Eintrag der Combobox zugreifen? (https://www.delphipraxis.net/18941-wie-auf-den-eintrag-der-combobox-zugreifen.html)

Rolf Rostig 26. Mär 2004 12:04


Wie auf den Eintrag der Combobox zugreifen?
 
Hallo,

ich fülle eine Combobox aus einer Firebird-Tabelle:


Delphi-Quellcode:
  with DM.IBSQLAdressen do
   begin
    close;
    ExecQuery;
    cbNamen.Items.clear;
    while not Eof do
     begin
      cbNamen.Items.AddObject(FieldByName('Eintrag').asString,
        TObject(FieldByName('ID').asInteger));
      next;
     end;
   close;
  end;
Nun möchte ich mit der ID auf den Eintrag der Combobox zugreifen.
Aber wie?

Delphi-Quellcode:
Combobox.ItemIndex := FieldByName('ID').asInteger
geht ja nicht

Robert_G 26. Mär 2004 12:36

Re: Wie auf den Eintrag der Combobox zugreifen?
 
TStrings hat doch auch die Funktion "IndexOfObject":
Delphi-Quellcode:
  ...ComboBox1.Items.IndexOfObject(TObject(FieldByName('ID').asInteger));

DelphiDeveloper 26. Mär 2004 13:06

Re: Wie auf den Eintrag der Combobox zugreifen?
 
Hallo Rolf,

du musst dein TObject als integer casten um an die ID's zu kommen:

Der ItemIndex ist ja schon vom anwender bestimmt, indem er einen Eintrag
in der Combo ausgewaehlt hat. Jetzt willst du zu diesem ItemIndex die ID.


Delphi-Quellcode:
with CBNamen do
begin
   showmessage(Inttostr(  integer( Items.Objects[ItemIndex])));
end;

Rolf Rostig 26. Mär 2004 15:39

Re: Wie auf den Eintrag der Combobox zugreifen?
 
Hallo DelphiDeveloper,

nee genau anders herum.
Jetzt will ich zu dieser ID den ItemIndex.

DelphiDeveloper 26. Mär 2004 16:04

Re: Wie auf den Eintrag der Combobox zugreifen?
 
dann faellt mir nichts bessers ein als sowas

Delphi-Quellcode:
function TForm1.GetItemIndexFromID(const aID: integer): integer;
var
  i: integer;
begin
  result := -1;
  with CBNamen do
  begin
    i := 0;
    while i <= pred(CBNamen.Items.Count) do
    begin
      if integer(cbnamen.Items.Objects[i]) = aID then
      begin
        result := i;
        break;
      end; //if
      inc(i)
    end; //while

  end; //with
end; //func

Robert_G 26. Mär 2004 16:06

Re: Wie auf den Eintrag der Combobox zugreifen?
 
Haalllloo... :hi:

Ist das denn nicht das, was du wolltest?
Zitat:

Zitat von Robert_G
Delphi-Quellcode:
ComboBox1.Items.IndexOfObject(TObject(FieldByName('ID').asInteger));


DelphiDeveloper 26. Mär 2004 16:12

Re: Wie auf den Eintrag der Combobox zugreifen?
 
@robert hat recht geht einfacher

CBNamen.ItemIndex := integer(CBNamen.Items.IndexOfObject(TObject(aID))) ;

Robert_G 26. Mär 2004 16:30

Re: Wie auf den Eintrag der Combobox zugreifen?
 
Wozu der TypeCast????
TStrings.IndexOfObject liefert einen Integer!

Rolf Rostig 26. Mär 2004 17:11

Re: Wie auf den Eintrag der Combobox zugreifen?
 
Danke, so geht´s

:cheers:

DelphiDeveloper 26. Mär 2004 18:05

Re: Wie auf den Eintrag der Combobox zugreifen?
 
@robert hat schon wieder recht :stupid:


typecast brauchts wirklich nicht bei IndexOfObject

CBNamen.ItemIndex := CBNamen.Items.IndexOfObject(TObject(aID));


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.

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