Hallo,
vermutlich sollen in Dein TEdit e_zbuch die Buchstaben [A..J] eingegeben werden, im TEdit e_zzahl wohl die Ziffern [1..10].
Wenn dem so ist, dann könntest Du über den Objektinspektor die Eigenschaften
Code:
CharCase | ecUpperCase
MaxLength | 1
für Dein TEdit e_zbuch setzen (was das bringt kannst Du in der
OH nachlesen).
Den Rest eventuell so:
Delphi-Quellcode:
procedure TForm1.b_schussClick(Sender: TObject);
var
a, b : integer;
begin
a := BBelegung;
b := ZBelegung;
img_raster1.Canvas.FillRect(Rect(a, b, (a + 20), (b + 20)));
end;
function TForm1.BBelegung : Integer;
var
s :
string;
c : Char;
begin
s := Trim (e_zbuch.Text);
if s = '
'
then
raise Exception.Create ('
Der Eingabewerte für e_zbuch darf nicht leer sein');
c := s [1];
if not (c
in ['
A'..'
J'])
then
raise Exception.Create ('
Als Eingabewerte für e_zbuch sind nur die Buchstaben A bis J erlaubt');
Result := 20 * (Ord (c) - 65)
end;
function TForm1.ZBelegung : Integer;
begin
if Trim (e_zzahl.Text) = '
'
then
raise Exception.Create ('
Der Eingabewerte für e_zzahl nicht leer sein');
try
Result := StrToInt (e_zzahl.Text);
if (Result < 1)
or (Result > 10)
then
raise Exception.Create ('
Als Eingabewerte für e_zzahl sind nur die Zahlen 1 bis 10 erlaubt');
Result := 20 * (Result - 1)
except
raise Exception.Create ('
Als Eingabewerte für e_zzahl sind nur die Zahlen 1 bis 10 erlaubt')
end
end;
Wenn Dir das mit dem werfen der Exceptions nicht gefällt, dann kannst Du natürlich auch einen negativen Wert zurückliefern und entsprechend in Deiner b_schussClick behandeln.
Gruß