TestGraph.Mod 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. MODULE TestGraph;
  2. IMPORT G := Graph;
  3. VAR c, f: G.Color;
  4. X, Y, W, H: INTEGER;
  5. font: G.Font;
  6. ZZ: ARRAY 2 OF CHAR;
  7. PROCEDURE Draw;
  8. BEGIN
  9. G.ClearToColor(c);
  10. IF X # -1 THEN
  11. G.Line(0, 0, X, Y, f);
  12. G.Line(0, H, X, Y, f);
  13. G.Line(W, H, X, Y, f);
  14. G.Line(W, 0, X, Y, f)
  15. END
  16. END Draw;
  17. PROCEDURE Message;
  18. BEGIN
  19. IF font # NIL THEN
  20. G.DrawString('Press space to return. X for down, ESC for up.',
  21. 0, 0, font, f);
  22. G.DrawString(ZZ, 0, 16, font, f)
  23. END
  24. END Message;
  25. PROCEDURE Animation;
  26. VAR ch: CHAR;
  27. BEGIN ch := 0X;
  28. REPEAT
  29. INC(X); IF X > W THEN X := 0 END;
  30. Draw;
  31. Message;
  32. G.Flip;
  33. G.Delay(1);
  34. IF G.KeyPressed() THEN
  35. ch := G.ReadKey();
  36. IF ch = 'x' THEN INC(Y, 100)
  37. ELSIF ch = CHR(27) THEN DEC(Y, 100)
  38. END
  39. END
  40. UNTIL ch = ' ';
  41. END Animation;
  42. PROCEDURE ByKey;
  43. VAR ch: CHAR;
  44. BEGIN
  45. REPEAT
  46. INC(X, 50); IF X > W THEN X := 0 END;
  47. Draw;
  48. Message;
  49. G.Flip;
  50. ch := G.ReadKey();
  51. IF ch = 'x' THEN INC(Y, 100)
  52. ELSIF ch = CHR(27) THEN DEC(Y, 100)
  53. ELSE ZZ[0] := ch
  54. END
  55. UNTIL ch = ' '
  56. END ByKey;
  57. PROCEDURE Do;
  58. VAR e: G.Event;
  59. done: BOOLEAN;
  60. BEGIN
  61. (*G.Settings(320, 200, {G.window});*)
  62. G.Init;
  63. G.ShowMouse(FALSE);
  64. font := G.LoadFont('../Data/Fonts/Main');
  65. G.GetTargetSize(W, H); DEC(W); DEC(H);
  66. G.MakeCol(c, 20, 30, 80);
  67. G.MakeCol(f, 0, 180, 255);
  68. done := FALSE; X := -1; ZZ[0] := 0X; ZZ[1] := 0X;
  69. REPEAT
  70. WHILE G.HasEvents() DO
  71. G.WaitEvent(e);
  72. IF e.type = G.quit THEN done := TRUE
  73. ELSIF e.type = G.mouseMove THEN
  74. X := e.x; Y := e.y
  75. ELSIF e.type = G.mouseDown THEN
  76. IF e.button = 1 THEN Animation
  77. ELSIF e.button = 2 THEN ByKey
  78. END
  79. END
  80. END;
  81. Draw;
  82. G.DrawString('Left mouse button - KeyPressed, right - ReadKey test',
  83. 0, 0, font, f);
  84. G.Flip;
  85. G.Delay(1)
  86. UNTIL done;
  87. G.Close
  88. END Do;
  89. BEGIN
  90. Do
  91. END TestGraph.