Выход из программы по нажатию клавиши - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Окно почему-то не считывает нажатие клавиши, и все продолжает выполнятся. Как можно исправить?

Решение задачи: «Выход из программы по нажатию клавиши»

textual
Листинг программы
uses graphABC;
var t: Boolean;
procedure KeyPress(key:char);
begin
if key<>#0 then t:=false;
end;
var i, n, a,j: Integer;
    K, B: Array[1..3000] of Integer;
    C: Array[1..3000] of Color;
begin
t:=true;
randomize;
LockDrawing;
onkeypress:=KeyPress;
while t do
 begin
  for j := 1 to 3000 do
   begin
    K[j] := random(0,700);
    B[j] := random(0,700);
    C[j] := rgb(random(255), random(255), random(255));
   end;
  for n := 1 to 100 do
   begin
    i := 1;
    a := random(-100, 300);
    while (i<800)and t do
    begin
     i:=i+4;
     clearwindow(clblack);
      for j := 1 to 3000 do
      putpixel(K[j], B[j], C[j]);
      setbrushcolor(clDarkGray);
      Ellipse(-100 + i, 120 + a, 50 + i, 200 + a);
      setbrushcolor(clLightBlue);
      setpencolor(clLightBlue);
      Pie(-25 + i, 160 + a, 50, 0, 180);
      setpencolor(clDarkGray);
      setpenwidth(9);
      line(-70 + i, 192 + a, -80 + i, 230 + a);
      line(-36 + i, 200 + a, -36 + i, 235 + a);
      line(18 + i, 192 + a, 28 + i, 230 + a);
      sleep(1);
      Redraw;
    end;
  end;
end;
end.

Объяснение кода листинга программы

  1. Объявлены переменные: t (логическое), i, n, a (целые), K, B, C (массивы), j (неизвестное).
  2. Установлен обработчик события нажатия клавиши (KeyPress).
  3. Задана начальная установка графического окна (LockDrawing).
  4. Задана начальная установка цвета кисти и пера (rgb(random(255), random(255), random(255))).
  5. Задана начальная установка координат для рисования (0,0).
  6. Задана циклическая смена цвета кисти и пера (Ellipse, Pie, line).
  7. Задана циклическая смена координат для рисования (Pie).
  8. Задана циклическая смена цвета кисти и пера (setbrushcolor, setpencolor).
  9. Задана циклическая смена толщины пера (setpenwidth).
  10. Задана циклическая смена цвета фона (clblack).
  11. Задана циклическая смена способа рисования (clearwindow).
  12. Задана циклическая смена прозрачности (sleep).
  13. Задана циклическая смена способа рисования (Redraw).
  14. Задана циклическая смена цвета фона (clDarkGray).
  15. Задана циклическая смена координат для рисования (Ellipse).
  16. Задана циклическая смена цвета фона (clLightBlue).
  17. Задана циклическая смена цвета кисти и пера (setbrushcolor, setpencolor).
  18. Задана циклическая смена толщины пера (setpenwidth).
  19. Задана циклическая смена цвета фона (clDarkGray).
  20. Задана циклическая смена способа рисования (line).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы