Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ComboBoxen Einträgen Daten zuweisen (https://www.delphipraxis.net/101881-comboboxen-eintraegen-daten-zuweisen.html)

Jack23 19. Okt 2007 15:21

Datenbank: Access • Zugriff über: ADO

ComboBoxen Einträgen Daten zuweisen
 
Hallo

ich mal wieder.

Muss ich wirklich für jede Frage ein eigenes Thema öffnen? Auch wenn es mit dem anderen zu tun hat?

Naja wenn es sein muss.

Also ich habe die Daten jetzt in drei ComboBoxen. Mit folgenden Code:

Delphi-Quellcode:
procedure TForm1.CB(Sender: TObject);
begin
ComboBox.Items.Clear;
ADOQuery.First;
while not ADOQuery.EOF do
  begin
    ComboBox.Items.Add(ADOQuery.FieldByName('Test').AsString);
    ADOQuery.Next;
  end;
end;
Das klappt auch wunder bar.

Wie gesagt habe ich jetzt drei Boxen können aber noch mehr werden.

Nun möchte das jedem Box Eintrag ein Wert zugewiesen wird.

Beispiel:

name|wert
Test1|2 B B, 54 Häuser mit Fenstern, 80 CD Rohlinge, 66M Kabel
Test2|....

Dabei sind die Werte durch ein Komma getrennt. Ich möchte wie gesagt später mal mit den Werten rechnen.

Wie bekomme ich das in der ComboBox zugewiesen?

Das der Name2 der ComboBox den wert1 hat u.s.w.

Damit ich später damit gut rechnen kann.

Progman 19. Okt 2007 15:37

Re: ComboBoxen Einträgen Daten zuweisen
 
dann würde ich "wert" in eine TStringList schreiben, deren Eigenschat Delimiter auf "," eingestellt ist.
Als Resultat hast du dann alle einzelnen Dinge in ein einzelnen Strings, die du über StringList[0] usw. abfragen kannst.
Und diese Einzelstrings kannst du ja dann in ComboBoxen packen.

DeddyH 19. Okt 2007 15:39

Re: ComboBoxen Einträgen Daten zuweisen
 
Zitat:

Zitat von Jack23
Dabei sind die Werte durch ein Komma getrennt.

Bist Du sicher, dass das so sinnvoll ist? Anscheinend ist Deine Datenbank nicht in der 3. Normalform, daher wirst Du wahrscheinlich irgendwann auf massive Probleme stoßen (kann aber auch sein, dass ich das mal wieder völlig falsch verstanden habe).

Jack23 19. Okt 2007 15:53

Re: ComboBoxen Einträgen Daten zuweisen
 
@Progman

Wie mache ich das ganz genau mit der Stringlist? Bin da schon mal dran gescheitert.

@Deddy

Ist kein Problem. Da das Komma für nichts anderes gebraucht wird.

Progman 19. Okt 2007 16:02

Re: ComboBoxen Einträgen Daten zuweisen
 
das sollte recht einfach sein:
Delphi-Quellcode:
//irgendwo am Anfang
  Liste:=TStringList.Create;

//dann das Feld "wert" in einen String (s) einlesen
//dann:
  Liste.Delimiter:=',';
  Liste.Text:=s;
//jetzt müsste Liste soviele Einträge enthaltem, wie Komma-getrennte Daten in "wert" standen
//dann evtl. prüfen, wie viele Einträge da sind und
  ComboBox1.Items.Add(Liste[0]);
  ComboBox2.Items.Add(Liste[1]);
  ComboBox3.Items.Add(Liste[2]);
//aber immer überprüfen, ob Liste.Count ausreichend ist, wenn es keine feste Anzahl ist.

Jack23 19. Okt 2007 16:09

Re: ComboBoxen Einträgen Daten zuweisen
 
Ok aber die Stringlist muss dynamisch sein.

Und die Einträge der CheckBox sollen den Namen der Spalte "Name" haben und nur den wert von der Spalte "wert".

Sharky 19. Okt 2007 16:19

Re: ComboBoxen Einträgen Daten zuweisen
 
Hai Jack23,

wie DaddyH schon geschrieben hat würde ich an deiner Stelle das Tabellenlayout der Datenbank überdenken. Mache dir lieber jetzt die Arbeit das "ordentlich" zu entwickeln als später, wegen dem schlechten layout, im Code zu frickeln.

Aber zu Deiner Frage:

Schaue Dir doch mal die Eingenschaft Objects von TStringList (und damit auch der Items einer Combobox) an.

Eine Beispiel steht unter anderem hier in der DP.

Jack23 19. Okt 2007 17:00

Re: ComboBoxen Einträgen Daten zuweisen
 
Sorry verstehe ich immer noch nicht. Wie ich beide Werte da rein bekomme aber der "Namen" angezeigt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz