Moinsen! Ich programmiere im Moment Schiffe versenken, um die einsamen Informatik-Schulstunden ein bisschen interessanter zu gestalten. Allerdings bin ich hierbei auf ein Problem gestoßen.
Ich bemale beim Starten des Programmes ein TImage mit einem Raster, auf dessen Grundlage anschließend das Spiel ablaufen soll. Um die ersten Grundlagen wie auf ein Feld schiessen schonmal zu haben hab ich mir diese Prozedur als erstes Vorgenommen.
Delphi-Quellcode:
procedure TForm1.b_schussClick(Sender: TObject);
var a, b: integer;
begin
a:=BBelegung(e_zbuch.Text);
b:=ZBelegung(StrToInt(e_zzahl.Text));
img_raster1.Canvas.FillRect(rect(a, b, (a+20), (b+20)));
end;
Delphi-Quellcode:
function TForm1.BBelegung(A:
string): integer;
var Vergleich,
Ascii, c, d: integer;
begin
d:=StrToInt(A);
c:=0;
Vergleich:=65;
Ascii:=ord(d);
while Vergleich <>
Ascii do
begin
inc(c, 20);
inc(Vergleich)
end;
result:=c;
end;
Um zu wissen, auf welche Stelle der Spieler schiesst, hab ich mir das System von TImage.canvas.fillrect genauer angeguckt und stütze mich hierbei auf ein selbst entwickeltes System. Grundsätzlich sollte dies auch funktionieren, allerdings bekomme ich immer, wenn ich in e_zbuch ein Buchstabe eingebe und die function ausführe die Fehlermeldung, dass "B kein gültiger Integerwert" sei und werde an die Stelle
a:=BBelegung(e_zbuch.Text);
verwiesen
Das die function einen integer erwartet und der e_zbuch.text vorher umgewandelt wird hab ich auch schon ausprobiert, das funktioniert genauso nicht.
Weiß jemand weiter?