LINUX.ORG.RU

История изменений

Исправление AntonyRF, (текущая версия) :

  1. Лучше спросить на форуме паскаля

  2. Если у тебя есть одинаковые блоки в программе, то ты их можешь вынести в отдельные функции. Код сократиться и мест где ты можешь накосячить станет меньше. Даже если в твоей функции 3 строчки, это лучше чем вот такая твоя портянка, которую ни кто читать не хочет. Вникать и тратить время всем тупо лень, а у тебя может зачет горит.

  3. Так же там все сильно зависит от версии паскаля, что там у тебя, турбо паскаль, lazarus, borland pascal, ABC или еще черт знает что. Но грубо говоря должен помочь код приведенный ниже или гугли про hook key in pascal.

Function КакТыТамНазватьЭтуФункциюХочешь;
var
    esc_pressed: Boolean;
    c: Char;
begin
    esc_pressed = false;
    while not esc_pressed do
    begin 
       { Если клавиша не нажата, то }
       while not KeyPressed do
           UpdateScreen; { Тут можешь свою анимацию рисовать}
       { Иначе узнай что там там за код кнопки }
       c:=ReadKey;
       { Переменную с можешь сравнивать уже с чем хочешь, с кодами стрелок или с esc, а потом прыгай в начало функции }
       if c = #27 then esc_pressed = true;
    end;
end;

Исправление AntonyRF, :

  1. Лучше спросить на форуме паскаля

  2. Если у тебя есть одинаковые блоки в программе, то ты их можешь вынести в отдельные функции. Код сократиться и мест где ты можешь накосячить станет меньше. Даже если в твоей функции 3 строчки, это лучше чем вот такая твоя портянка, которую ни кто читать не хочет. Вникать и тратить время всем тупо лень, а у тебя может зачет горит.

  3. Так же там все сильно зависит от версии паскаля, что там у тебя, турбо паскаль, lazarus, borland pascal, ABC или еще черт знает что. Но грубо говоря должен помочь код приведенный ниже или гугли про hook key in pascal.

Function КакТыТамНазватьЭтуФункциюХочешь;
var
    esc_pressed: Boolean;
    c: Char;
begin
    esc_pressed = false;
    while not esc_pressed do
    begin 
       { Если клавиша не нажата, то }
       while not keypressed do
           UpdateScreen; { Тут можешь свою анимацию рисовать}
       { Иначе узнай что там там за код кнопки }
       c:=ReadKey;
       { Переменную с можешь сравнивать уже с чем хочешь, с кодами стрелок или с esc, а потом прыгай в начало функции }
       if c = #27 then esc_pressed = true;
    end;
end;

Исходная версия AntonyRF, :

  1. Лучше спросить на форуме паскаля

  2. Если у тебя есть одинаковые блоки в программе, то ты их можешь вынести в отдельные функции. Код сократиться и мест где ты можешь накосячить станет меньше. Даже если в твоей функции 3 строчки, это лучше чем вот такая твоя портянка, которую ни кто читать не хочет. Вникать и тратить время всем тупо лень, а у тебя может зачет горит.

  3. Так же там все сильно зависит от версии паскаля, что там у тебя, турбо паскаль, lazarus, borland pascal, ABC или еще черт знает что. Но грубо говоря должен помочь код приведенный ниже или гугли про hook key in pascal.

Function КакТыТамНазватьЭтуФункциюХочешь;
begin
    while not esc_pressed do
    begin 
       { Если клавиша не нажата, то }
       while not keypressed do
           UpdateScreen; { Тут можешь свою анимацию рисовать}
       { Иначе узнай что там там за код кнопки }
       c:=ReadKey;
       { Переменную с можешь сравнивать уже с чем хочешь, с кодами стрелок или с esc, а потом прыгай в начало функции }
       if c = #27 then esc_pressed = true;
    end;
end;