Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Combobox (https://www.delphipraxis.net/149986-combobox.html)

snears 4. Apr 2010 09:52


Combobox
 
Einen wünderschönen Sonntag,

ich habe mal wieder eine Frage und zwar habe ich ein Projekt laufen das mir meine Abiturnote berechnet.
Nur leider komme ich nicht mehr weiter, mein Problem ist folgendes, ich habe mir comboxen erstellt in denen ich mein fach auswählen kann
und in der nächsten combobox meine punktzahl die ich erreicht habe.

Nun würde ich gerne wissen, da es sehr viele comboxen sind und ich keine lust habe meine punkte im edit feld einzufügen, wie delphi
die zahl die man ausgewählt in der combobox und die dann einem wert zugefügt wird.


Also meinetwegen ich habe in deutsch 10 Punkte, dann soll delphi sagen

combobox1 = 10
10= x ( um mit dem x noch weitere berechnungen zu machen)

Hoffe ihr versteht was ich meine.


Vielen Dank schon mal im vorraus und frohe Ostern

DeddyH 4. Apr 2010 09:56

Re: Combobox
 
Sry, aber zumindest ich persönlich hab das noch nicht ganz verstanden :gruebel:

himitsu 4. Apr 2010 10:05

Re: Combobox
 
Du kannst eine ComboBox genauso auslesen, wie ein Edit > .Text
oder man nimmt den .ItemIndex

mkinzler 4. Apr 2010 10:08

Re: Combobox
 
Genauer gesagt
ComboBox.Items[ComboBox.ItemIndex]

himitsu 4. Apr 2010 10:23

Re: Combobox
 
Wenn man weiß, daß nur Zahlen in .Items vorkommen und diese auch noch sortiert sind, dann kann man auch direkt mit .ItemIndex rechnen. :angel2:

Matze 4. Apr 2010 10:29

Re: Combobox
 
Wenn Text Zahlen zugeordnet werden soll (bsp. sehr gut => 1), dann könnte man auch Text mit "sehr gut" festlegen und der Eigenschaft "Tag" die 1 zuweisen und mit Tag direkt rechnen.

himitsu 4. Apr 2010 10:39

Re: Combobox
 
Tag?

Es gibt doch nur ein .Tag pro ComboBox.
Meinst du nicht eher ComboBox1.Items.Objects ? :gruebel:

[add]
Zitat:

Zitat von DeddyH
Schlimmstenfalls käme noch eine case-Abfrage in Betracht.
Delphi-Quellcode:
case ComboBox.ItemIndex of
  0: Note := 1;
  1: Note := 2;
  ...
end;

Note := ComboBox.ItemIndex + 1;

DeddyH 4. Apr 2010 10:48

Re: Combobox
 
Schlimmstenfalls käme noch eine case-Abfrage in Betracht.
Delphi-Quellcode:
case ComboBox.ItemIndex of
  0: Note := 1;
  1: Note := 2;
  ...
end;

Matze 4. Apr 2010 12:06

Re: Combobox
 
Zitat:

Zitat von himitsu
Meinst du nicht eher ComboBox1.Items.Objects ? :gruebel:

:wall: ja, verwechselt. Dann geht's doch nicht ganz so einfach.

DeddyH 4. Apr 2010 12:14

Re: Combobox
 
Zitat:

Zitat von himitsu
[add]
Zitat:

Zitat von DeddyH
Schlimmstenfalls käme noch eine case-Abfrage in Betracht.
Delphi-Quellcode:
case ComboBox.ItemIndex of
  0: Note := 1;
  1: Note := 2;
  ...
end;

Note := ComboBox.ItemIndex + 1;

Rechnen kann ich auch, das war ja nur ein Beispiel. Man kann aber auch hartkodiert völlig unterschiedliche Werte zuweisen, die sich nicht unbedingt berechnen lassen.

snears 4. Apr 2010 12:15

Re: Combobox
 
also ich glaube das ist nicht das was ich suche.
ich versuch es noch einmal zu erklären. Also meine Abiturnote setzt sich aus mehreren Notenpunkten zusammen, ich habe z.b. 24 grundkursfächer die ich einbringen muss in das abitur und es gibt auch noch weitere kriterien aber die sind ersteinmal unwichtig.

Also ich habe nun viele comboboxen erstellt und kann dort auswählen von Deutsch über Mathe bis hin zu Sport (is nur wichtig für die Kriterien die noch erfüllt werden müssen) und dann habe ich noch comboboxen mit den zahlen von 0 bis 15.

Wenn ich nun in der Combobox1 die zahl 12 auswähle soll diese zahl 12 meinetwegen den wert x erhalten,
in der combobox2 wähle ich die zahl 7 aus so und dann kommt eine nicht so schwere gleichung

x:= x + combobox2. (und dann fehlt mir der befehl für das auslesen/ ich habe auch kein start wo er erst dort auslesen soll,
sondern gleich wenn man in der combobox etwas auswählt soll es im edit oder memo feld eingetragen werden)
edit1.text:= strtoint (x)



hoffe das das nun etwas deutlicher war und ihr mir helfen könnt, vll bin auch zu blöd um das zu verstehen was ihr mir schon hingeschrieben habt!


DANKE

DeddyH 4. Apr 2010 12:18

Re: Combobox
 
Nochmal zum Verständnis: Du hast ComboBoxen mit den Fächern und dazugehörige Comboboxen mit den Punkten? Also dass jeweils 2 Comboboxen ein logisches Paar ergeben?

snears 4. Apr 2010 12:26

Re: Combobox
 
Ja genau, aber sie sind nicht miteinander verknüpft oder so!
ich habe es schon mit dem code versucht


Delphi-Quellcode:

var x :string;

begin

x:=0;

x:= x + combobox1.text;
x:= x + combobox2.text;
x:= x + combobox3.text;

edit1.text:= strtoint(x)
aber dann hat er mir gesagt das bei x:= 0 srting und integer fehler aufgetreten ist

dann habe ich einmal versucht mit value, das aber genauso wenig funzte

SirThornberry 4. Apr 2010 12:26

Re: Combobox
 
@snears: Kannst du dem Beitrag bitte einen aussagekräftigeren Titel geben? :)

DeddyH 4. Apr 2010 12:30

Re: Combobox
 
Die schnellste (im Sinne von Ergebnis erzielen) Möglichkeit wäre IMO
Delphi-Quellcode:
var x :integer;

begin

x:=0;

x:= x + StrToIntDef(combobox1.text,0);
x:= x + StrToIntDef(combobox2.text,0);
x:= x + StrToIntDef(combobox3.text,0);

edit1.text:= IntToStr(x);

snears 4. Apr 2010 12:47

Re: Combobox
 
also mein code sieht jetzt so aus


Delphi-Quellcode:

procedure TForm1.GrundkursbereichClick(Sender: TObject);
var x :integer;

begin

x:=0;

x:= x + StrToIntDef(comboBox25.text,0);
x:= x + StrToIntDef(combobox26.text,0);
x:= x + StrToIntDef(combobox27.text,0);

edit1.text:= IntToStr(x);

es funzt auch nur habe ich das in ein panel gemacht und muss nun damit etaws in das edit feld geschrieben wird immer erst noch auf das panel drücken kann man das umgehen, also das er das gleich anzeigt????

DeddyH 4. Apr 2010 12:50

Re: Combobox
 
Drück Dich doch bitte etwas verständlicher aus. Ich rate jetzt einfach mal und werfe ein Delphi-Referenz durchsuchenTWinControl.SetFocus in den Raum.

SirThornberry 4. Apr 2010 15:52

Re: Combobox
 
@snears: Ich bitte dich nochmals einen aussagekräftigen Titel zu wählen. Anhand deines jetzigen Titels kann man nur raten worum es in dem Beitrag geht. Dadurch finden später, Andere mit gleichem Problem, die Lösung nur schwer bist gar nicht und müssen erneut nachfragen.

Noedel 4. Apr 2010 16:03

Re: Combobox
 
ich glaube er will fragen, wie man es hinbekommt, dass die Prozedur, in der die Grundkurse zusammengezählt werden nicht mehr im OnClick des Panels ausgeführt wird. ist das soweit richtig?

dann musst du jetzt das alles, was du beim Klick auf das Panel machst, in das OnChange-Event des Edits zu packen (findest du im OI). dabei darauf achten, dass du immer integer-Zahlen im Edit stehen hast (dh. Abfrage, ob Edit.Text eine Zahl --> Delphi-Referenz durchsuchenTryStrToInt) und dann erst rechnen, sonst bekommst du schön nervige fehlermeldungen ausgespuckt ;)

snears 4. Apr 2010 16:55

Re: Combobox
 
ah vielen Dank jetzt funzt es richtig!
Ich sollte mich nächstemal vll besser ausdrücken aber dennoch vielen Dank für die vielen Antworten.


snears

mkinzler 4. Apr 2010 17:06

Re: Combobox
 
Nicht erst das nächste Mal! Ändere bitte den Titel, auch wenn das Problem schon gelöst ist!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 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