2
0

TestGui.Mod 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. MODULE TestGui;
  2. IMPORT Gui, B := Buttons, Panels, G := Graph, Int, Strings, Out;
  3. VAR
  4. win: Gui.Window;
  5. btn, btn2, btn3: B.Button;
  6. panel1: Panels.Panel;
  7. QQQ, WWW: INTEGER;
  8. PROCEDURE BtnOnClick(W: Gui.Widget);
  9. VAR s: ARRAY 30 OF CHAR;
  10. BEGIN
  11. s := 'Щёлк ';
  12. Int.Append(W.tag, s);
  13. Gui.SetText(W, s);
  14. INC(W.tag)
  15. END BtnOnClick;
  16. PROCEDURE MyButtonMouseMove(W: Gui.Widget; x, y, btn: INTEGER);
  17. VAR s: ARRAY 30 OF CHAR;
  18. BEGIN
  19. Int.Str(x, s);
  20. Strings.Append(':', s);
  21. Int.Append(y, s);
  22. Gui.SetText(W, s)
  23. END MyButtonMouseMove;
  24. PROCEDURE MyButtonMouseDown(W: Gui.Widget; x, y, btn: INTEGER);
  25. VAR s: ARRAY 30 OF CHAR;
  26. BEGIN
  27. Int.Str(QQQ, s);
  28. Strings.Append(', ', s);
  29. Int.Append(x, s);
  30. Strings.Append(':', s);
  31. Int.Append(y, s);
  32. Gui.SetText(W, s);
  33. INC(QQQ)
  34. END MyButtonMouseDown;
  35. PROCEDURE MyButtonMouseUp(W: Gui.Widget; x, y, btn: INTEGER);
  36. VAR s: ARRAY 30 OF CHAR;
  37. BEGIN
  38. Int.Str(QQQ, s);
  39. Strings.Append('; ', s);
  40. Int.Append(x, s);
  41. Strings.Append(':', s);
  42. Int.Append(y, s);
  43. Gui.SetText(W, s);
  44. INC(QQQ)
  45. END MyButtonMouseUp;
  46. PROCEDURE Btn3OnMouseEnter(W: Gui.Widget);
  47. BEGIN
  48. Gui.SetText(W, 'СЮДА')
  49. END Btn3OnMouseEnter;
  50. PROCEDURE Btn3OnMouseLeave(W: Gui.Widget);
  51. BEGIN
  52. Gui.SetText(W, 'ТУДА')
  53. END Btn3OnMouseLeave;
  54. PROCEDURE InitInterface;
  55. BEGIN
  56. Gui.NewWindowSettings({G.fullscreen});
  57. win := Gui.NewWindow(320, 200);
  58. (*Gui.NewWindowSettings({});
  59. win := Gui.NewWindow(800, 600);*)
  60. panel1 := Panels.NewPanel(220, 140, 'Кнопки');
  61. Gui.Place(win, panel1, (win.w - panel1.w) DIV 2, (win.h - panel1.h) DIV 3);
  62. btn := B.NewButton(110, 24, 'Нажми меня');
  63. Gui.SetDefault(btn, TRUE);
  64. Gui.SetOnMouseMove(btn, MyButtonMouseMove);
  65. Gui.SetOnMouseDown(btn, MyButtonMouseDown);
  66. Gui.SetOnMouseUp(btn, MyButtonMouseUp);
  67. Gui.SetOnClick(btn, BtnOnClick);
  68. Gui.Place(panel1, btn, 8, 20);
  69. btn2 := B.NewButton(110, 24, 'Щёлкни сюда');
  70. Gui.SetDefault(btn2, TRUE);
  71. Gui.SetOnClick(btn2, BtnOnClick);
  72. Gui.Place(panel1, btn2, 8, btn.y + btn.h + 8);
  73. btn3 := B.NewButton(110, 24, 'Ничто');
  74. Gui.Place(panel1, btn3, 8, btn2.y + btn2.h + 8);
  75. Gui.SetOnMouseEnter(btn3, Btn3OnMouseEnter);
  76. Gui.SetOnMouseLeave(btn3, Btn3OnMouseLeave);
  77. Gui.SetDefault(btn3, TRUE);
  78. END InitInterface;
  79. BEGIN
  80. QQQ := 0; WWW := 0;
  81. Gui.Init;
  82. IF Gui.Done THEN
  83. InitInterface;
  84. Gui.Run;
  85. Gui.Close
  86. ELSE Out.String('Could not init GUI.'); Out.Ln
  87. END
  88. END TestGui.