Autor Beitrag
MagicTom
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

2000, XP Pro, 2003 Srv, 2003 SBS, Vista
D5, D7, D2005
BeitragVerfasst: Mi 01.02.06 08:58 
Hallo,
ich hätte da gerne auch mal ne Frage ;-)

Ich habe folgendes Problem:

Zwei Comboboxen, unterschiedlich Werte!

In der ersten Combobox möchte ich Namen haben (Bsp: Müller, Meier, Schulze)

In der zweiten Combobox möchte ich gerne abhängig von der ersten Combobox wieder Namen haben (Bsp: 1CB = Müller / 2CB = Frank, Susanne, Fritz)

Als Krönung des ganzen möchte ich dann abhängig von den Namen nur Integerwerte übergeben!
(Bsp: Wenn Name Müller dann Wert 1 und wenn Name Fritz dann Wert 3 also Wert 1 UND Wert 3)

Habt Ihr eine Idee wie man das ganze machen könnte???

Thomas

EDIT:

Sorry ich habe noch vergessen zu erwähnen: Die Werte in der zweiten Combobox sind natürlich nicht 1,2,3 sond z.B. 8, 27, 87 ;-)

Thomas


Zuletzt bearbeitet von MagicTom am Mi 01.02.06 09:13, insgesamt 1-mal bearbeitet
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Mi 01.02.06 09:09 
So richtig weiß ich jetzt nicht ob du da eine 1:1 Verknüpfung herstellen willst oder 1:n.
Wäre evtl. ein TValueListEditor nicht eine bessere Möglichkeit?
MagicTom Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

2000, XP Pro, 2003 Srv, 2003 SBS, Vista
D5, D7, D2005
BeitragVerfasst: Mi 01.02.06 09:24 
Hi Digi_c,
ich möchte gerne in der ersten Combobox 120 verschiedene Werte habe, also Müller, Meier, Schule,...

Abhängig von der ersten Combobox dann in der zweiten bis zu 15 unterschiedliche Werte haben.

Ich denke das es eine 1:n Verbindung ist!?

Es sollen dann für Meier Wert 123 sein und für Frank Wert 24135 sein.

Ich hoffe ich konnte dir und euch das Problem nun besser erklären?

Thomas
Wolfgang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mi 01.02.06 09:56 
Hi!

Ich hab das mal probiert, weiß aber nicht od es das ist was du willst.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
procedure TForm1.ComboBox1Select(Sender: TObject);
var
  werte: array[1..30of integer;
begin

a := combobox1.itemindex;

werte[1] := 1;
werte[2] := 2;
werte[3] := 3;
werte[4] := 4;
werte[5] := 5;
werte[6] := 6;
werte[7] := 7;
werte[8] := 8;
werte[9] := 9;
werte[10] := 10;
werte[11] := 11;
werte[12] := 12;
werte[13] := 13;
werte[14] := 14;
werte[15] := 15;
werte[16] := 16;
werte[17] := 17;
werte[18] := 18;
werte[19] := 19;
werte[20] := 20;
werte[21] := 21;
werte[22] := 22;
werte[23] := 23;
werte[24] := 24;
werte[25] := 25;
werte[26] := 26;
werte[27] := 27;
werte[28] := 28;
werte[29] := 29;
werte[30] := 30;

a := a*15;
b := a+15;
ComboBox2.Items.Clear;
repeat
a := a+1;
Combobox2.Items.Add(inttostr(werte[a]));
until a = b;
end;


Sind nur 2 Namen für Testzwecke und a und b sind integer.

lg Wolfgang

_________________
Two or three tons of stone can really get you down, and keep you there!
MagicTom Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

2000, XP Pro, 2003 Srv, 2003 SBS, Vista
D5, D7, D2005
BeitragVerfasst: Mi 01.02.06 10:09 
Hi,
ja, das ist FAST das was ich suche :-)

Wenn ich den Quelltext so sehe, dann müßte ich doch einfach nur die Werte eingeben:

Bsp:
Müller hat 22

Franz hat 18, Susi 49

Schulze hat 42

Fritz hat 34, kalle hat 96

Richtig???

Wenn ja, dann VIELEN DANK!!!

Thomas
MagicTom Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

2000, XP Pro, 2003 Srv, 2003 SBS, Vista
D5, D7, D2005
BeitragVerfasst: Mi 01.02.06 11:24 
Hallo :wave: ,
ich habs mir angeschaut und habe noch eine Frage:

Müller(1) Frank(12)
Susi(24)
Fritz(36)
Meier(2) Karl(4)
Egon(9)
Anne(81)
Schulze(3) Anna(3)
Opa(37)
Oma(99)

Wenn ich nun die Lösung von Werner nehme, dann kann ich ja nicht die Namen in der Combo zeigen und den Wert übergeben (Korrigiert mich wenn ich falsch bin!)

Also suche ich immer noch nach einer Lösung...

Thomas

ps: Ich habe mal ein kleines Programm angehängt um besser zu erklären was ich meine...
Einloggen, um Attachments anzusehen!
Wolfgang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Mi 01.02.06 11:36 
Hi!

Ich glaube ich verstehe noch nicht ganz genau was du willst.

Ich bin heute etwas langsam. Kannst du mir deshalb bitte noch mal genau beschreiben, was das Programm machen soll und eventuell für was du es brauchst?

Wolfgang

//EDIT1
Hab jetzt bis Morgen kein Internet mehr aber ich versuch es nachvollziehen zu können, was genau du machen willst und mir etwas zu überlegen.

_________________
Two or three tons of stone can really get you down, and keep you there!
Wolfgang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Do 02.02.06 08:59 
Hi!

Ich hab jetzt eine Lösung, kann aber sein, dass sie dir etwas zu umständlich ist. Nutze Delphi erst seit 1 oder 2 Monaten und kenne deshalb nicht viele Befehle.

Im Anhang ist ein Programm zum downloaden.

Wenn der Quelltext unverständlich ist, frag einfach.

Die ganzen Daten werden in einem Textfile "Autos" gespeichert, wenn du es mit dem Programm öffnest, werden die Daten in des StringGrid geladen und die Werte in die Combobox übertragen.

Im Textfile müssen aber immer die gleiche Anzahl von Zeichen pro Spalte verwendet werden, wegen dem copy im Quelltext, kann man aber leicht ändern.

So kannst du auch sehr leicht neue Wägen im Textfile hinzufügen und musst nichts am Quellcode ändern.

g Wolfgang
Einloggen, um Attachments anzusehen!
_________________
Two or three tons of stone can really get you down, and keep you there!
MagicTom Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

2000, XP Pro, 2003 Srv, 2003 SBS, Vista
D5, D7, D2005
BeitragVerfasst: Do 02.02.06 09:42 
Hi Werner,
das sieht schon ganz gut aus... - DANKESCHÖN!!!

Die Comboboxen habe ich mir genauso vorgestellt!

Wenn jetzt noch jemand eine nicht ganz so aufwändige Lösung hätte... ;-) Es handelt sich immerhin um 120*15 Datensätze die natürlich nicht alle die gleiche Länge haben!

Grüsse
Tom
Wolfgang
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Do 02.02.06 09:49 
Hi!

Die Länge der Datensätze ist ja mehr oder weniger egal.

Wenn du im Textfile einfach nach einem zB 20-Zeichen langem Autonamen noch 30 Leerschritte anhängst, musst du nur bei allen anderen Autonamen auch 50-Zeichen zusammenbekommen. (erster Teil durch den Namen zweiter Teil durch die Leerschritte). Nur die Startposition der nachfolgenden Informationen (AutoNummer, ...) muss gleich sein.

zB:
Alle Autonamen Position 1
Alle Modelle Position 50
Alle Autonummern Position 100
Alle Modellnummern Position 150

Je nachdem wie lange du einen Wert haben willst. Musst nur den Quellcode adaptieren.

mfg Wolfgang

PS: Ist etwas Arbeit ich weiß. Sorry dass ich keine bessere Lösung habe.

_________________
Two or three tons of stone can really get you down, and keep you there!
LLCoolDave
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win XP
Delphi 2005
BeitragVerfasst: Do 02.02.06 12:51 
Oder du arbeitest sinnvollerweise beim auslesen mit copy und pos und einem (oder mehreren) trennzeichen, dann hast du das Problem mit der länge nicht mehr.