Combobox
Combobox
Hallo an alle ich hab da eine kleine Frage zur Combobox.
Nachdem ich mir nun bei google 2h ein paar Beiträge überall mal durch gelesen habe bin ich zwar mit dem Erstellen von einträgen in der Combobox vertraut aber noch steht am Anfang ein großen Fragezeichen.
Eigentlich ist es ganz einach. Ich möchte z.b. folgende Einträge in der Combobox auswählen:
z.b. Metallmine 26
Metallmine27
Metallmine28
Metallmine29
usw.
Dazu zu jeder Mine besteht natürlich ein Wert mit dem ich dann natürlich weiter rechnen will und hier ist mein Problem, bestimmt ganz simpel aber ich komm nicht drauf.
Also der Name so wie hier soll in der Combobox ausgewählt werden beispielsweise Metallmine26 = 25000
ich will dann im nächsten Edit mit der 25000 weiter rechnen und da kommt der fehler der nimmt die Metallmine26 und wirft mir natürlich ein Fehler vor die Nase.
vielleicht kann mir ja von euch einer helfen. Hoffe ich hab nicht nur irgendwo ne Klammer vergessen oder es irgendwo falsch hin geschrieben
Nachdem ich mir nun bei google 2h ein paar Beiträge überall mal durch gelesen habe bin ich zwar mit dem Erstellen von einträgen in der Combobox vertraut aber noch steht am Anfang ein großen Fragezeichen.
Eigentlich ist es ganz einach. Ich möchte z.b. folgende Einträge in der Combobox auswählen:
z.b. Metallmine 26
Metallmine27
Metallmine28
Metallmine29
usw.
Dazu zu jeder Mine besteht natürlich ein Wert mit dem ich dann natürlich weiter rechnen will und hier ist mein Problem, bestimmt ganz simpel aber ich komm nicht drauf.
Also der Name so wie hier soll in der Combobox ausgewählt werden beispielsweise Metallmine26 = 25000
ich will dann im nächsten Edit mit der 25000 weiter rechnen und da kommt der fehler der nimmt die Metallmine26 und wirft mir natürlich ein Fehler vor die Nase.
vielleicht kann mir ja von euch einer helfen. Hoffe ich hab nicht nur irgendwo ne Klammer vergessen oder es irgendwo falsch hin geschrieben
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Combobox
Wenn sich aus der Minennummer der Wert berechnen lässt ist das doch ganz einfach, z.B:
Wenn nicht, dann nimm ein statisches oder dynamisches Array, mit der selben Länge wie Items in deiner Combobox sind und nimm das als Lookuptable:
EDIT: Ich gehe in meinen Beispielen davon aus, dass das erste Element deiner Combobox Metallmine 1 heißt.
MFG
Komoluna
Code: Alles auswählen
Wert := (Combobox1.ItemIndex + 1) * 10000; //oder irgendeine andere Formel
Code: Alles auswählen
Wertarray: array of Integer;
//oder
Wertearray: array [0..<Hier anzahl deiner minen -1 eintragen>] of integer;
Code: Alles auswählen
if Combobox1.ItemIndex>-1 then
Wert := Wertarray[Combobox1.ItemIndex];
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Combobox
Danke erst einmal für deine schnelle Antwort,
Nein ich hab mit Metallmine 25 angefangen da es darunter eigentlich kein Sinn macht.
Ich habe unten mal das alte Programm angefügt, so wie es da unten ist soll es wieder werden nur mit mehr Edit Fenster z.b. Wo man die Uhrzeit vom Spionagebericht eingeben kann und es soll dann automatisch die Uhrzeit zurück Rechnen. Und noch ein paar andere Erweiterungen.
Ich habe dieses Tool damals für den Unterricht erstellt, da es halt mit Ogame was ich damals aktiv gespielt habe zusammen hing. Nur seit dem hab ich die Combobox nicht einmal mehr angerüht und auch den Quellcode von dem Tool nicht mehr. Muss also wieder bei 0 anfangen.
Nein ich hab mit Metallmine 25 angefangen da es darunter eigentlich kein Sinn macht.
Ich habe unten mal das alte Programm angefügt, so wie es da unten ist soll es wieder werden nur mit mehr Edit Fenster z.b. Wo man die Uhrzeit vom Spionagebericht eingeben kann und es soll dann automatisch die Uhrzeit zurück Rechnen. Und noch ein paar andere Erweiterungen.
Ich habe dieses Tool damals für den Unterricht erstellt, da es halt mit Ogame was ich damals aktiv gespielt habe zusammen hing. Nur seit dem hab ich die Combobox nicht einmal mehr angerüht und auch den Quellcode von dem Tool nicht mehr. Muss also wieder bei 0 anfangen.
- Dateianhänge
-
save.exe
- Altes Programm
- (388 KiB) 64-mal heruntergeladen
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Combobox
"Uhrzeit vom Spionagebericht"?
sry, aber ich kenn das spiel nicht. Was genau soll passieren?
Du hast einen Wert von 25-35 (Minenlevel) und einen beliebig großen(Rohstoffmenge).
Gibt es eine Formel, wo?
Da deine Minen bei 25 Anfangen nimm doch einfach ItemIndex(Mine 25) = 0
Dann einfach
Falls dem nicht so ist, dann brauchen wir wohl mehr infos... (wie kommt man denn von Minenlevel und Rohstoffmenge auf den Zeitwert?)
MFG
Komoluna
sry, aber ich kenn das spiel nicht. Was genau soll passieren?
Du hast einen Wert von 25-35 (Minenlevel) und einen beliebig großen(Rohstoffmenge).
Gibt es eine Formel, wo
Code: Alles auswählen
T(x) = <irgendwas mit m und x>
Da deine Minen bei 25 Anfangen nimm doch einfach
Code: Alles auswählen
m := Combobox1.ItemIndex + 25;
Dann einfach
Code: Alles auswählen
Wert := CalcTimeFor(m, Inttostr(Edit1.Text));
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Combobox
Also zum Beispiel Metallmine 25 hat eine Produktion von 8.641 Metall / Stunde
im Edit was du da siehst gibst du dann die Metallmenge ein die auf dem Fremden Planeten liegt. z.b. 251839 dann kommt bei Zeit raus: 1Tage 5h 8min 41sec
und genau das soll es auch machen. Ich weiß noch in etwa das ich damals jeden Eintrag in der Combobox einen Wert ( in dem Falle 8641) zu gewiesen habe. Weiß nur nicht mehr wie
das ist mein Problem
Also mehr will ich eigentlich auch gar nicht. Wenn ich oder einer meiner Mitspieler in der Combobox z.b. die Metallmine 25 auswählt und dann im Edit 1 251839 eingibt soll er also 251839/8641 rechnen und das dann halt in Tage/Min/Stunden/Sekunden ausgeben.
Entschuldigung schon einmal ich kann mich immer nicht so richtig ausdrücken aber hoffe du versteht ungefair was ich meine.
im Edit was du da siehst gibst du dann die Metallmenge ein die auf dem Fremden Planeten liegt. z.b. 251839 dann kommt bei Zeit raus: 1Tage 5h 8min 41sec
und genau das soll es auch machen. Ich weiß noch in etwa das ich damals jeden Eintrag in der Combobox einen Wert ( in dem Falle 8641) zu gewiesen habe. Weiß nur nicht mehr wie

Also mehr will ich eigentlich auch gar nicht. Wenn ich oder einer meiner Mitspieler in der Combobox z.b. die Metallmine 25 auswählt und dann im Edit 1 251839 eingibt soll er also 251839/8641 rechnen und das dann halt in Tage/Min/Stunden/Sekunden ausgeben.
Entschuldigung schon einmal ich kann mich immer nicht so richtig ausdrücken aber hoffe du versteht ungefair was ich meine.
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Combobox
Dann würde ich ein statisches array nehmen:
(oder so)
MFG
Komoluna
Code: Alles auswählen
Werte: array [0..19] of single = (8.641,...); //Achte drauf, dass du exakt 20 werte einträgst, sonst kompiliert das nicht
Code: Alles auswählen
t := Inttostr(Edit1.Text) / Werte(Combobox1.ItemIndex);
MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Combobox
danke für deine Hilfe ich werde das nachher mal ausprobieren
Re: Combobox
hmm ich bin zu blöd dafür und auch anscheinend zu lang raus um mit arrays zu arbeiten. Hab kp wo ich das jetzt eintrage. Hatte es unter den globalen Variablen aber der spuckt mir immer etwas mit LongInt als fehler aus.
Sagt mal kann man auch alles einzeln deklarieren?
Für jede Metallmine die ausgewählt wird brauch ich eine Zahl bzw ein Wert um damit dann beim Buttonklick in Edit 1 und Edit 2 weiter zu rechnen. Irgendwie bekomm ich das mit dem array nicht hin.
Sagt mal kann man auch alles einzeln deklarieren?
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var
begin
ComboBox1.Items.AddObject('Metallmine 24', TObject(1));
ComboBox1.Items.AddObject('Metallmine 25', TObject(2));
ComboBox1.Items.AddObject('Metallmine 26', TObject(3));
ComboBox1.Items.AddObject('Metallmine 27', TObject(4));
ComboBox1.Items.AddObject('Metallmine 28', TObject(5));
ComboBox1.Items.AddObject('Metallmine 29', TObject(6));
ComboBox1.Items.AddObject('Metallmine 30', TObject(7));
ComboBox1.Items.AddObject('Metallmine 31', TObject(8));
ComboBox1.Items.AddObject('Metallmine 32', TObject(9));
ComboBox1.Items.AddObject('Metallmine 33', TObject(10));
ComboBox1.Items.AddObject('Metallmine 34', TObject(11));
ComboBox1.Items.AddObject('Metallmine 35', TObject(12));
end;
Für jede Metallmine die ausgewählt wird brauch ich eine Zahl bzw ein Wert um damit dann beim Buttonklick in Edit 1 und Edit 2 weiter zu rechnen. Irgendwie bekomm ich das mit dem array nicht hin.
-
- Beiträge: 565
- Registriert: So 26. Aug 2012, 09:03
- OS, Lazarus, FPC: Windows(10), Linux(Arch)
- CPU-Target: 64Bit
Re: Combobox
Poste doch mal die Fehlermeldung, dann können wir dir sicher helfenTheBeer hat geschrieben:hmm ich bin zu blöd dafür und auch anscheinend zu lang raus um mit arrays zu arbeiten. Hab kp wo ich das jetzt eintrage. Hatte es unter den globalen Variablen aber der spuckt mir immer etwas mit LongInt als fehler aus.

MFG
Komoluna
Programmer: A device to convert coffee into software.
Rekursion: siehe Rekursion.
Rekursion: siehe Rekursion.
Re: Combobox
Note: Local variable "ress" is assigned but never used
das mit zu langen Integer hab ich selbst verschuldet ^^ hatte leider ein Wert zu viel eingegeben aber nun kommt das bei dem array wie gesagt hab das array global geschrieben oder muss das woanders hin? Berechnen tue ich wie in dem alten Tool mittels ein Button
das mit zu langen Integer hab ich selbst verschuldet ^^ hatte leider ein Wert zu viel eingegeben aber nun kommt das bei dem array wie gesagt hab das array global geschrieben oder muss das woanders hin? Berechnen tue ich wie in dem alten Tool mittels ein Button
Re: Combobox
Das ist ein Hinweis, aber doch kein Fehler der das Compilen verhindert oder zur Laufzeit kommt.TheBeer hat geschrieben:Note: Local variable "ress" is assigned but never used
Falls der Hinweis stimmt, lass dioe Variable ress doch weg.