Advertisement
dllbridge

mode Button

Dec 30th, 2024 (edited)
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.52 KB | None | 0 0
  1.  
  2.  
  3.  
  4. #include    "C:/dllBridge/WinLego/Lego/Lego.h"
  5. using namespace Lego;
  6.  
  7.  
  8.  
  9. void mode_switch(int new_mode);
  10.  
  11. int    mode_0_constructor();
  12. int    mode_1_constructor();
  13. int    mode_2_constructor();
  14.  
  15. int    mode_0_destr();
  16. int    mode_1_destr();
  17. int    mode_2_destr();
  18.  
  19.  
  20. char sz1[99];
  21.  
  22.  
  23. Button               btn[7];               //   На всякий случай, сразу 7 элементов (кнопок).
  24.  
  25. /////////////////////////////////////////////   Эта функция инициализации. Она вызывается с помощью таймера №1
  26. void INIT()                                //   1 (единственный) раз, когда Timer_CLK == 1.
  27. {          
  28.  
  29.      btn[0].Create("btn[0]",  50, 400, 90, 22);        mode = 0;
  30.      btn[1].Create("btn[1]", 500,  50, 90, 22);   btn[1].Hide();    
  31.      btn[2].Create("btn[2]", 500, 200, 90, 22);   btn[2].Hide();
  32.      
  33.      
  34. }
  35.  
  36.  
  37.  
  38.  
  39. ///////////////////////////////////////////////     Эта функция вызывается (с помощью таймера №2) 5 раз
  40. void START()                                 //     в секунду, когда Timer_CLK >= 2.                                                      
  41. {
  42.  
  43.      if(btn[0].Press())  mode_switch(1);  
  44.      if(btn[1].Press())  mode_switch(2);
  45.      if(btn[2].Press())  mode_switch(1);
  46.      
  47.      wsprintf(sz1, "mode = %d  ", mode);     Print_1(550, 440, sz1);      
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85. ///////////////////////////////////////////////
  86. int mode_0_constructor()                     //
  87. {
  88.        
  89.        
  90. }
  91.  
  92.  
  93. ///////////////////////////////////////////////
  94. int mode_2_constructor()                     //
  95. {
  96.      
  97.     btn[2].Show();        
  98.    
  99.    
  100.    
  101.     Print_2(20, 50, "This inscription appeared after pressing button number one - btn[1].");  
  102. }
  103.  
  104.  
  105. ///////////////////////////////////////////////
  106. int mode_1_constructor()                     //
  107. {
  108.        
  109.     btn[1].Show();  
  110.     static int nCounter = 0;
  111.    
  112.     if(nCounter++) {
  113.                    
  114.            Print_2 (20, 200,
  115.                     "This inscription appeared after pressing button number two - btn[2].");  
  116.     }
  117. }
  118.  
  119.  
  120. ///////////////////////////////////////////////
  121. int  mode_0_destr()                          //
  122. {
  123.        
  124.      btn[0].Hide();
  125. }
  126.  
  127. ///////////////////////////////////////////////
  128. int mode_1_destr()                           //
  129. {
  130.        
  131.     btn[1].Hide();  
  132.     Print_2(20, 200, "                                                                    ");
  133. }
  134.  
  135.  
  136. ///////////////////////////////////////////////
  137. int mode_2_destr()                           //
  138. {
  139.        
  140.     btn[2].Hide();    
  141.     Print_2(20,  50, "                                                                    ");  
  142. }
  143.  
  144.  
  145.  
  146.  
  147.  
  148. ///////////////////////////////////////////////////////
  149. void mode_switch(int new_mode)                       //
  150. {
  151.      
  152.      if(mode == new_mode) { Print(550, 440, "NO OP    "); return;  }
  153.      
  154.      switch(mode)
  155.      {
  156.                  
  157.         case   0:  mode_0_destr();         break;  
  158.         case   1:  mode_1_destr();         break;
  159.         case   2:  mode_2_destr();         break;                          
  160.      }
  161.      
  162.      switch(mode = new_mode)
  163.      {
  164.                  
  165.         case   0:                          break;  
  166.         case   1:  mode_1_constructor();   break;
  167.         case   2:  mode_2_constructor();   break;
  168.      }
  169. }
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement