Avatar billede snowball Novice
21. maj 2003 - 10:29 Der er 5 kommentarer og
1 løsning

Tilknyt ID til hvert item i en TComboBox

Hej !

Hvordan kan man tilknytte et ID til hvert item i en TCombobox !? Kan ikke bruge ItemIndex da alle items hentes fra en database hvorefter de bliver sorteret, og så passer det ikke helt sammen.

Sagt på en anden måde; hvordan tilknytter man 2 værdier til hvert item - ét der bliver vist i listen, og ét der er skjult.

Snowball
Avatar billede laffe Nybegynder
21. maj 2003 - 10:50 #1
En TComboBox Består af Items, som er en TStrings Classe

Til hver string i sådan en klasse kan du knytte et Object.

En TStringList er en nedarvning af en TStrings.

f.eks.

TStringList* ComboData;  // Indeholder alle combobox linier

ComboData = new TStringList();


// Lav en classe som indeholder de værdier du vil knytte til combobox teksten
TMyObject *MyObject;

MyObject = new TMyObject(10);

// Her knytter du teksten "Combo Item 1" til dit object MyObject, som indeholder værdien 10.
ComboData->AddObject("Combo Item 1",MyObject);

// Her indsætter du din liste af data ind i din combobox.
ComboBox->Items = ComboData;
Avatar billede laffe Nybegynder
21. maj 2003 - 10:59 #2
Hovsa - Det her er jo et Delphi spørgsmål. Det overså jeg lige.

Men svaret er god nok de samme klasser findes i Delphi.


;-)
Avatar billede snowball Novice
21. maj 2003 - 12:02 #3
Synes nok det så lidt meget C++ agtigt ud ;)

Snowball
Avatar billede borrisholt Novice
21. maj 2003 - 12:41 #4
I den fejler ikke noget .. Jeg skal lige lave dig et Delphi eks. Så kan laffe få points..

Jens B
Avatar billede borrisholt Novice
21. maj 2003 - 12:49 #5
procedure TForm1.Button1Click(Sender: TObject);
begin
  ComboBox1.Items.AddObject('Hest ' + IntToStr(ComboBox1.Items.Count +1), TObject(Random(5000)) );
  ComboBox1.ItemIndex := ComboBox1.Items.Count -1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  Text : String;
  Id : Integer;
begin
  text := ComboBox1.Items[ComboBox1.ItemIndex];
  ID := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
  Caption := Format('Text : %s Id : %d', [Text, Id]);

end;
Avatar billede snowball Novice
21. maj 2003 - 13:49 #6
Tak for hjælpen.

Snowball
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester