Witam :)
Piszę sobie program, który ma służyć jako prosta gra. Jednym z jego elementów jest ruchomy przycisk, który lata po planszy przyjmując pewne luźne reguły. Oto moja procedura dla jego ruchu:
procedure wrog;
begin
randomize;
k:=k+1;
if k=4 then k:=0;
if k=0 then i:=random(5);
case i of
1:form1.wrog.Top:=form1.wrog.Top+4;
2:form1.wrog.Top:=form1.wrog.Top-4;
3:form1.wrog.left:=form1.wrog.left+4;
4:form1.wrog.left:=form1.wrog.left-4;
end;
if form1.wrog.left>600 or if form1.wrog.left<10 or if form1.wrog.top<10 or if form1.wrog.top>500 then
begin
form1.wrog.Top:=random(150)+200;
form1.wrog.Left:=random(200)+200;
end;
Ta procedura będzie podpięta do timera. Niestety, przy próbie kompilacji wywala mi błąd - na ostatnim endzie procedury: "Operator not applicable to this operand type", a że w programowaniu jestem świeży jak szczaw, nie mogę znaleźć istoty problemu. Bardzo prosze o podpowiedź :)
I przy okazji bardzo chętnie zadam drugie pytanie: Wczoraj napisałem kalkulator. Starałem się jakoś sensownie zabronić wstawiania drugiego przecinka w okienku wyniku. Zrobiłem to tak, że można wpisać tylko jeden przecinek, tzn. można wpisać 19,1, ale 19,2,1 już nie - niestety nie sprawdza się to, jeśli w oknie wynikowym jeden przecinek już jest - wtedy można dopisać drugi. Brakuje mi "zdania" sprawdzającego, czy w oknie na którymkolwiek miejscu pojawił się już przecinek - jak to zrobić?
Pozdrawiam!