So sieht das ganze aus.
Delphi-Quellcode:
keywert: array[1..9] of boolean = (false,false,false,false,false,false,false,false,false);
procedure Tform1.keyw(key: word);
begin
case key of
VK_NUMPAD1: Keywert[1] := True;
VK_NUMPAD2: Keywert[2] := True;
VK_NUMPAD3: Keywert[3] := True;
VK_NUMPAD4: Keywert[4] := True;
VK_NUMPAD5: Keywert[5] := True;
VK_NUMPAD6: Keywert[6] := True;
VK_NUMPAD7: Keywert[7] := True;
VK_NUMPAD8: Keywert[8] := True;
VK_NUMPAD9: Keywert[9] := True;
end
end;
Das Problem ist dies for schleife mit if Anweisung. Wenn als erste das z.B die 5 gedrückt wirt ist die array[1] logischweiße auf false also wird der Anweisungsblock ausgeführt. Irgendwie hab ich da einen Denk Fehler.
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var i: integer;
begin
for i := 0 to 9 do
if keywert[i] = false then
begin
form1.posi(Geo1,key);
Geo1.kreis(form1.Canvas, Geo1.farbe);
keyw(key);
end