Programación General > C++ Builder

 grafica de datos/tiempo

(1/1)

Pablet:
Hola, estoy haciendo un programa que regula la canntidad de luz en una habitacion por medio de una TAQ. Esta me va dando cada segundo el valor de la luz actual que hay dentro y fuera de la habitacion. Yo quiero ponerle una grafica que me valla mostrando la evolucion de la luz en el tiempo, y que me genere una recta. Para ello habia pensado en utilizar el elemento Performance Graph pero no tengo ni idea de como utilizarlo, si alguien sabe y me lo quiere explicar. . . o si sabeis alguna forma alternativaa de hacerlo. .  quiero evitar crear bases de datos,  ya que llos datos me da igual que se pierdan. Gracias por adelantadoo. Un saludo

AnimaSubtilis:
Mira eso es sencillo....

Yo utilizo los siguentes componentes

TPaintBox de system --- este para manejar la linea de tiempo
TTimer de system --- para manejar los intervalos de tiempo
CSpinButton ---- este lo utilizo para simular el valor del sensor....pruebas rapidas..

mejor dicho el codigo del form es algo asi


--- Código: Text ---  #include <vcl.h>#pragma hdrstop #include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma link "CSPIN"#pragma link "PERFGRAP"#pragma resource "*.dfm"TForm1 *Form1;int j=0;int x=0;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){}//---------------------------------------------------------------------------  void __fastcall TForm1::CSpinButton1DownClick(TObject *Sender){  j-=10;  Edit1->Text=j;//decremento valor relativo del sensor}//---------------------------------------------------------------------------void __fastcall TForm1::CSpinButton1UpClick(TObject *Sender){ j+=10; Edit1->Text=j; //incremento valor relativo del sensor}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){ PaintBox1->Canvas->Pen->Color=clRed;//para que la linea en el tiempo sea roja Timer1->Interval=100;//tiempo en que se activara el timer para realizar el muestreo de datos Timer1->Enabled=true;}//---------------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender){ if(x>PaintBox1->Width)//si el valor en x es mayor que el tamaño del ancho de la grafica.. {  PaintBox1->Enabled=false;//esto lo hago para borrar lo anteriormente puesto...creo que tambien con refresh funciona..  PaintBox1->Enabled=true;  x=0; } PaintBox1->Canvas->LineTo(x,j); x=x+10;}//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){ }  
cualquier cosa que pruebalo y me cuentas....
de resto es cuadrar para que se vea al derecho..jaja.....

Taluego.........

Pablet:
Gracias!! ya lo tengo hecho y semifuncionando!! ya he arreglado para que salga del derecho restando k a la altura del paintbox. Muchas gracias!! Un saludo!

Navegación

[0] Índice de Mensajes

Ir a la versión completa