AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Combobox auswerten?!?
Thema durchsuchen
Ansicht
Themen-Optionen

Combobox auswerten?!?

Ein Thema von plautzer · begonnen am 24. Dez 2004 · letzter Beitrag vom 1. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#1

Combobox auswerten?!?

  Alt 24. Dez 2004, 14:12
Hi,

ich habe in einer Combobox zwei Felder einer tabelle (ID +''+ Bezeichnung), damit eine genau selektion möglich ist. Ich stehe jetzt vor dem problem ich das ich sie nicht auswerten kann. ICh bräuchte den wert der ID in einer Variable.
Die beiden werte sind per leerzeichen getrennt.. kann man das nutzen und die ID bis zum leerzeichen definieren?

Noch zum verständnis: Per Comboboxselect sollen dann die dazugehörigen daten in EDits eingetragen werden!

Danke euch,

Plautzer
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Combobox auswerten?!?

  Alt 24. Dez 2004, 14:25
die gewählte zeile der ComboBox kriegst du mit ItemIndex raus, die Strings stehen in Items, oder du nimmst doie eigenschaft SelText

Du kannst mit Pos(' ',t); die position des ersten leereichens in einem string t rausfinden

mit t2:=copy(t,1,5) kopierst du die ersten 5 zeichen aus t in t2

mit tint:=strtoint(tstring) machst du aus dem string tstring einen integer tint

wenn du das alles richtig zusammenschmeisst sollte es klappen....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#3

Re: Combobox auswerten?!?

  Alt 24. Dez 2004, 15:54
HI,

ich bekomme bei f:=Pos('',t); immer nur 0 raus?

So schaut mein input code aus:
CB_haus.Items.Add(D_haus.Fields[1].Asstring+ ' ' + D_haus.Fields[2].asstring); Herausfinde der Position:

Delphi-Quellcode:
CB_haus.Focused;
i:=CB_haus.ItemIndex;
a:=CB_haus.Text;
f:=Pos('',t);
Verstehe net warum das nicht geht.

Plautzer
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Combobox auswerten?!?

  Alt 24. Dez 2004, 16:29
Ich vermute mal, dass du zwischen ID und Bezeichnung ein Leerzeichen gesetzt hast, oder?
Dann wäre das hier falsch:
f:=Pos('',t); Das hier jedoch richtig:
f:=Pos(' ',t); Ich hoffe, ich habe das richtig verstanden
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#5

Re: Combobox auswerten?!?

  Alt 24. Dez 2004, 23:31
jup, ultimator hat wahrscheinlich recht

du setzt statt eines blank ' ' einen leeren string ''....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#6

Re: Combobox auswerten?!?

  Alt 25. Dez 2004, 01:23
Jepp... es funzt jez.

Ich hatte gedacht, dass da '' schon als leerstring gilt.

Thx leute,

Plautzer
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Combobox auswerten?!?

  Alt 25. Dez 2004, 01:37
Ich würde ie Methode Delphi-Referenz durchsuchenAddObject nehmen und die ID zusätzlich als Zeiger auf eine Datenstruktur mit dem Item selner ablegen. Dann sparst du dir das Gefrickel mit pos und copy. Desweiteren halte ich es für die elegantere Lösung - aber auch eben programmiertechnisch etwas anspruchsvoller.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#8

Re: Combobox auswerten?!?

  Alt 31. Dez 2004, 15:19
HI,

it addobject komme ich garnet zu recht, da weiß ich gar nicht wie anfangen sollte.

@ultimator

Wie ermittle ich den 2ten wert?
z.B.

1 2 3 4

wie kann ich das auslesen und wenn möglich in variabelen speichern?

Ich habs so probiert:

Delphi-Quellcode:
edit1.Focused;
a:=edit1.Text;
f1:=0;
while f1 < edit1.GetTextLen do
begin
f2:=Pos(' ',a); // ich vermute hier den fehler (beim 2ten durchlauf um eins zu klein)
a2:=copy(a,f1,f2-1);
n:=strtoint(a2);
f1:=f2+1;
Funzt aber nicht ganz. Einen durchlauf macht er aber dann kommt die fehlermeldung *' ' ist keine gültiger integer * ;

Wie bekomme ich die schleife zum laufen?
Wo gibts noch einen besseren weg?

THx,

Plautzer
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Combobox auswerten?!?

  Alt 31. Dez 2004, 16:31
Angenommen, du hast 4 Werte, 1 2 3 4, jeweils durch ein Leerzeichen getrennt.
Delphi-Quellcode:
var zahl1, zahl2, zahl3, zahl4, zahlaktuell:byte; //Positionen der Zahlen
  zahlen:string;
...
begin
zahlen:='1 2 3 4';
zahlaktuell:=pos('1',zahlen); //Position der 1. Zahl
zahl1:=strtoint(copy(zahlen,zahlaktuell,1)); //Die erste Zahl in die Variable Zahl1 zur Weiterverarbeitung kopieren
zahlaktuell:=pos('2',zahlen); //Position der 2. Zahl
zahl2:=strtoint(copy(zahlen,zahlaktuell,1));
zahlaktuell:=pos('3',zahlen); //Position der 3. Zahl
zahl3:=strtoint(copy(zahlen,zahlaktuell,1));
zahlaktuell:=pos('4',zahlen); //Position der 4. Zahl
zahl4:=strtoint(copy(zahlen,zahlaktuell,1));
ShowMessage('Zahl 1 ist '+inttostr(zahl1)+#10#13+'Zahl 2 ist '+inttostr(zahl2)+#10#13+'Zahl 3 ist '+inttostr(zahl3)+#10#13+'Zahl 4 ist '+inttostr(zahl4));
end;
Wenns mehr Zahlen sind, köntest dus evtl. in ne Schleife packen, aber das solltest du schon schaffen
Julian J. Pracht
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#10

Re: Combobox auswerten?!?

  Alt 31. Dez 2004, 17:31
Ja, das ganze ist einfach wenn man die Zahlen kennt.
Das ganze ist aber dynamisch, zb 2 45 567 2 4563, wie liest mann so etwas aus?

Ich habe mir ja schon überlegt die position gleich in eine variable überzugeben und nicht erst in edit. Das beste wäre in ein array : a[1]:=zahl1, a[2]:=zahl2 etc.

Das könnte man dann wunderbar an die speicherprocedure übergeben und in einer schleife abarbeiten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 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