...
function GetCifra(x,y: integer): byte;
begin
{$ifdef debug}tInPole(x,y,'GetCifra');{$endif}
result:=pole[x,y].num and $7F;
end;
...
function WhatOut(x,y: integer): byte;
function podsv(num,n: byte):byte;
begin
//
end;
function PressedKl(x,y: integer; n: byte):byte;
var num: byte;
begin
num:=GetCifra(x,y);
if num=cfNop
then result:=podsv(0,n)
else result:=podsv(num,n);
end;
var n: byte;
begin
{$Ifdef debug}tinpole(x,y,'WhatOut');{$endif}
if tInPole(x,y,'WhatOut')
then begin
//âû÷èñëåíèå íàæàòîñòè
n:=GetCursor(x,y);
if n=NoIgr
then result:=GetCifra(x,y)
else with igr[n]
do if (inputMode=imNothing)or(not PressedOpenKey)
then result:=podsv(GetCifra(x,y),n)
else result:=PressedKl(x,y,n);
end
else result:=cfOther;
end;
безобразие
во всех остальных местах все работает нормально
почему такое может происходить????
,и как от этого избавиться?
Код:
между приведенными ниже картинками одно нажатие F7
UPD: да, и кстати что такое cfNop? откуда линейная функция может это знать?
Внимание, правильный ответ: в окне отладки отображаются совершенно не те X, Y, что передаются в функцию. Причина -- with.
а мне очередной урок, что не бывает безвыходных ситуаций:)
то что вам помогли - это замечательно, а вот название топика, которые вы ему дали - это действительно настоящие безобразие. правила раздела почитайте, пожалуйста, и старайтесь чтобы название темы отражало суть вопроса - это хорошая тренировка для нашего мышления.