Advertisement
idsystems

CPP2_Practica15_Temp

Aug 5th, 2015
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.23 KB | None | 0 0
  1. /*
  2. prac15.cpp
  3. Programa basado en la practica 26 y 27 del Cuaderno de ejercicios Programacion I
  4. Para convertir temperaturas y usar los controles de Slider o Track
  5. Por: LSC Sergio Hugo Sanchez O.
  6. Fecha: 19/Mayo/2011
  7.  
  8. NOTA: Descubrimos que no es posible poner 2 tracks porque al momento de
  9. evaluar sus eventos el programa se congela. Por lo mismo, el codigo marcado
  10. con comentarios seria valido si la libreria no tendria errores
  11. */
  12.  
  13. #include <radc++.h>
  14.  
  15. int fahrenheit, celsius;
  16. int nPos, nPos2;
  17.  
  18. Form form1("Conversiones de Temperatura",0,0,400,500);
  19.  
  20. Label lblCelsius("CELSIUS",AUTO_ID, 10,10,80,20,form1);
  21. Label lblFarenheit("FARENHEIT",AUTO_ID, 100,10,80,20,form1);
  22.  
  23. Track sldCelsius(AUTO_ID,10,30,30,430,form1,0,true,true,false,true);
  24. Track sldFaren(AUTO_ID,100,30,30,430,form1,0,true,true,false,true);
  25.  
  26. Label label2("Temperatura en Celsius",-1,170,60 ,150,20,form1);
  27. TextBox txt_Cel("0",AUTO_ID,170,85 ,170,20,form1);
  28.  
  29. Label label3("Temperatura en Farenheit",-1,170,155 ,150,20,form1);
  30. TextBox txt_Far("32",AUTO_ID,170,180 ,150,20,form1);
  31.  
  32. Button cmdConvertir("Convertir",AUTO_ID,170,230,100,20,form1);
  33. Button cmdFaren("Fahrenheit",AUTO_ID,170,260,100,20,form1);
  34.  
  35. FormProcedure proc(FormProcArgs) {
  36.     ON_CLOSE() Application.close();
  37.    
  38.     ON_TRACK_CHANGE(sldCelsius) {      
  39.         nPos = sldCelsius.position; //get track position
  40.         celsius = nPos;
  41.         fahrenheit = ( 9.0 * celsius ) / 5.0 + 32.0;
  42.  
  43.         txt_Far.text = str(fahrenheit);
  44.         sldFaren.position = fahrenheit;
  45.         sldCelsius.position = celsius;
  46.         txt_Cel.text = str(sldCelsius.position);       
  47.    
  48.     }
  49. //o poner el codigo siguiente porque no funciona con 2 tracks al mismo tiempo
  50. /*ON_TRACK_CHANGE(sldFaren) {      
  51.         nPos2 = sldFaren.position; //get track position
  52.         fahrenheit = nPos2;
  53.         celsius = ( 5.0 / 9.0 ) * ( fahrenheit - 32.0 );
  54.  
  55.  
  56.         txt_Far.text = str(sldFaren.position);
  57.         sldFaren.position = fahrenheit;
  58. //      sldCelsius.position = celsius;
  59. //      txt_Cel.text = str(celsius);       
  60.    
  61.     }
  62. */
  63. /* 
  64.     ON_TEXT_CHANGED(txt_Cel) {
  65.         celsius = val(txt_Cel.text);
  66.         fahrenheit = ( 9.0 * celsius ) / 5.0 + 32.0;
  67.         txt_Far.text = str(fahrenheit);
  68.         sldFaren.position = fahrenheit;
  69.         sldCelsius.position = celsius;
  70.     }
  71.  
  72.     ON_TEXT_CHANGED(txt_Far) {
  73. //      sldCelsius.position = val(txt_pos.text);
  74.         fahrenheit = val(txt_Far.text);
  75.         celsius = ( 5.0 / 9.0 ) * ( fahrenheit - 32.0 );
  76.         txt_Cel.text = str(fahrenheit);
  77.         sldFaren.position = fahrenheit;
  78.         sldCelsius.position = celsius;
  79.  
  80.     }
  81. */    
  82.     ON_COMMAND_BY( cmdConvertir){
  83.         celsius = val(txt_Cel.text);
  84.         fahrenheit = ( 9.0 * celsius ) / 5.0 + 32.0;
  85.         txt_Far.text = str(fahrenheit);
  86.         sldFaren.position = fahrenheit;
  87.         sldCelsius.position = celsius;
  88.                    
  89.     }
  90.     ON_COMMAND_BY( cmdFaren) {
  91.         fahrenheit = val(txt_Far.text);
  92.         celsius = ( 5.0 / 9.0 ) * ( fahrenheit - 32.0 );
  93.         txt_Cel.text = str(fahrenheit);
  94.         sldFaren.position = fahrenheit;
  95.         sldCelsius.position = celsius;
  96.     }
  97.      
  98.     return 0;
  99. }
  100.  
  101. rad_main()
  102.  
  103.     form1.procedure = proc;
  104.    
  105.     //poner minimos y maximos iniciales
  106.     sldCelsius.minRange = 0;
  107.     sldCelsius.maxRange = 52;
  108.     sldCelsius.ticks = 52;
  109.    
  110.     sldFaren.minRange = 0;
  111.     sldFaren.maxRange = 248;
  112.     sldFaren.ticks = 130;
  113.     sldFaren.position = 32;
  114.  
  115.  
  116. rad_end()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement