Tachchen,
bräuchte seit langem mal wieder ein bisschen Hilfe.
Habe hier mal so eine Art Rennen mit Rechtecken in einem Image-Feld gemacht. Vier Rechtecke, vier verschiedene Farben in einem Timer, durch eine zufällige Verschiebung der x-Koordinate nach rechts ergeben sich somit verschiedene Geschwindigkeiten.
Die Reihenfolge wie die Rechtecke die Ziellinie (Bildbreite) überqueren, wird in einer Listbox festgehalten. Nun das Problem:
Es soll noch ein Tippspiel eingebaut werden. 4 Teilnehmer, jeder darf auf eines der vier Rectangles setzen. Der Tippspielsieger soll in einem Editfeld angezeigt werden. Für das Tippspiel habe ich ein zweites Formular erstellt, die Namen der Tipper in Editfeldern, daneben Comboboxes mit den Werten 1-4.
Problem: Ich schaffe es nicht, den obersten Wert der Listbox (Sieger des Rennens) anzusprechen und mit den getippten Ergebnissen zu vergleichen.
Hier mal ein Ausschnitt des Programmtextes:
Zweites Formular (Tippspiel):
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
tippa:=strtoint(combobox1.text);
tippb:=strtoint(combobox2.text);
tippc:=strtoint(combobox3.text);
tippd:=strtoint(combobox4.text);
form2.hide;
end;
Versuch des Vergleiches des Getippten mit dem tatsächlichem Ergebnis:
Delphi-Quellcode:
if (x) or (x1) or (x2) or (x3) < 0 then begin
listbox1.multiselect:=false;
V:=strtoint(listbox1.items[0]);
P:=form1.edit1.text;
case V of
tippa : P:=(form2.edit1.text);
tippb : P:=(form2.edit2.text);
tippc : P:=(form2.edit3.text);
tippd : P:=(form2.edit4.text);
else
form1.Edit1.text:='Kein Tipp!';
{Alternativmöglichkeit (funktioniert auch nicht)
V:=strtoint(listbox1.items[0]);
if V = tippa
then form1.edit1.text:=form2.edit1.text;
if V = tippb
then form1.edit1.text:=form2.edit2.text;
if V = tippc
then form1.edit1.text:=form2.edit3.text;
if V = tippd
then form1.edit1.text:=form2.edit4.text;}
end; //of case
end; //of if
Angezeigte Fehlermeldung "Konstantenausdruck erwartet"
Danke im Voraus