2
0

TestGraph.Mod 1.8 KB

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