PDA

Vollständige Version anzeigen : Wer aus Kombobox berrechnen...


Rasputin_att
08.04.2007, 19:04
Guten Tag...

ich möchte einen taschenrechner programmieren der es mir erleichtert zu errechnen wie lange ich noch auf eine bestimmte Resourcen Menge warten muss. Das soll eine Art erleichterung für ein Browsergame sein.

Es ist so geplant:

Der Benutzer gibt in das Textfeld "BenoetigteRes" den Wert der benötigten Resourcen ein. Z.B. "50000"!
Nun wählt er seine Minen Stufe, bzw "MkStufe". Es gibt 12 stück.
Ich dachte mir ich tu das mit einer Datenbank in eine Kombobox.
Das funktioniert auch soweit.
In der Kombobox wird nur der Wert der Stufe angezeigt (1-12). Nun habe ich es so:


Dim a, b As Integer
a = BenoetigteRes.Text ' Hier wird z.B. 50000 eingetragen
b = MkStufe.Text ' Hier kann man nur 12 Werte auswählen z.B. 6

TtoGo.Text = a / b ' In diese Textbox kommt das Ergebniss.


Bei MkStufe 6 produziert meine Mine 396 Eisen die Stunde. Es soll eigentlich folgendes gerrechnet werden:
50000/396=126,26
Leider rechnet mein Programm:
50000/6=8333,33

Und das ist nicht gewollt. Wie mache ich es also das mein Programm nicht den angezeigten Wert sondern den Wert aus der zweiten Spalte nimmt? Muss ich die Tabelle verknüpfen? Oder wie?

Wenn ihr fragen habt wie ich es meine fragt bitte....

An einer hilfreichen Antwort würde ich mich sehr erfreuen...

MfG Ra_att

Ps.: Ich weiß ist ne doofe frage.
Edit: Uups, da fehlt ein "t" im Titel. Tut mir leid...

hcscherzer
09.04.2007, 14:52
Moin Rasputin,
das Problem hast Du doch eigentlich klar vor Augen:
a = BenoetigteRes.Text
b = MkStufe.TextAber wo hast Du denn den Wert 396 abgelegt? In einer zweiten Spalte der ComboBox? Oder in einer Tabelle?
Bei 12 Werten würde ich ja ein Array vorschlagen, das beim Programmstart initialisiert wird un dann über den Index drauf zugreifen:TtoGo.Text = Val(a) / Val(werte(b))

Rasputin_att
09.04.2007, 17:57
die 396 liegt in einer zweiten spalte. Ich probier das mal mit dem array...nur wo muss ich das "a" bzw "wert(b)" eintragen?

hcscherzer
09.04.2007, 19:14
Moin,
a ist doch der Wert aus dem Textfeld, in dem Du die benötigten Ressourcen eingibst (btw: es ist immer besser, selbsterklärende Namen zu verwenden, so wie Du das ja auch bei den Formularfeldern machst).
Ich kenne ja jetzt nicht die Werte aus Deinem Spiel, aber das Array initialisierst Du am besten gleich bei der Definition.
public werte(13) = {0, 10, 23, 45, 60, 104, 396, 728, 1024, 1050, 1060, 2000, 3000} as integerDann benutzt Du den Wert der ComboBox (in Deinem Fall 6) als Index und werte(6) (das 7. Element aus dem Array) liefert Dir die 396.

Rasputin_att
09.04.2007, 22:33
Es tut mir leid wenn ich mich zu dumm anstelle. Aber iwie will das bei mir nicht. Kannst du mir vllt die Code zeile geben, also wie es aussehen muss?

Wäre überaus freundlich..

MfG Ra_att

Joris
10.04.2007, 10:11
Hallo,

@ hcscherzer: Dein Vorschlag mit dem Array ist meines erachtens zwar ein sinnvoller Lösungsvorschlag, allerdings hat dein Array, das du gepostet hast eine explizite Grenze und darf daher nicht explizit initialisiert werden. Außerdem darf die Initialisierung einer Variable nicht vor der Typenzuweisung stehen. Richtig wäre dein Code so:


Public werte() As Integer = {0, 10, 23, 45, 60, 104, 396, 728, 1024, 1050, 1060, 2000, 3000}



@ Rasputin_att: Du kannst, um hcscherzers Vorschlag weiterzuführen, ein Array(engl. Anordnung) an Objekten, in deinem Fall Zahlen vom Typ Integer, erstellen und auf diese dann durch den ausgewählten Index deiner ComboBox zugreifen. Beispiel:



Private Sub ButtonBerechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

' Ein Array mit den Stufen der Minen wird initialisiert
Dim werte() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}

Dim a, b As Integer

a = BenoetigteRes.Text
' Der Variable b wird der Wert aus dem dem Array Werte zugewiesen, der den gleichen Index hat, wie der Index des ausgewählten Elements der ComboBox
b = werte(MkStufe.SelectedIndex)

TtoGo.Text = a / b
End Sub


Die Werte in dem Array können natürlich verändert werden. Das erste Element der ComboBox hat den Index 0. Das erste Element des Arrays auch. Wenn du also 12 Werte zur Auswahl haben willst, müssen in dem Array 11 Elemente sein.

Ich hoffe, dass du mir folgen kannst.

Viele Grüße

Joris

Rasputin_att
10.04.2007, 11:45
Ich hoffe, dass du mir folgen kannst.

Viele Grüße


Es funktioniert...danke
Ja ich konnte dir sehr gut folgen, danke...

Dir auch ein danke @ hcscherzer

MfG Ra_att