Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2013
DugT DugT is offline
Registrado
NULL
 
Registrado: sep 2013
Posts: 4
Poder: 0
DugT Va por buen camino
Problema Representado

Buenas,

Estoy haciendo un programa para poder modificar señales dependiendo de unos parámetros pero a la hora de representarlas no me actualiza la gráfica. Es decir, me representa el primer bloque de 512 muestras correctamente, pero luego no elimina el anterior antes de representar el siguiente. He probado con varias funciones pero ninguna me da resultado, ¿qué función podría hacer eso?? Dejo el código que tengo por si ayuda.

Código SQL [-]
void __fastcall TForm1::Button5Click(TObject *Sender)
{

        float x[TB],y[512],z[512],l;


        l=0;


         for( int i=0; iAddXY(i,bloque[i],"Null",clTeeColor);

                x[i]=bloque[i];


         }
         Chart1->Refresh();

         l++;


}

Muchas gracias de antemano!!

PD: Esto ahora esta asignado a un botón, pero posteriormente se lo asignare a un contador para que se haga automáticamente mientras haya señal a la entrada.
Responder Con Cita
  #2  
Antiguo 13-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DugT y bienvenido a Club Delphi

Como a todos los que se inician te invitamos a leer nuestra Guía de estilo.

Con respecto a tu mensaje, creo que debes haber copiado mal el código al mensaje ya que como está no podría compilar. La estructura del ciclo for es incorrecta, debería ser:
Código:
  for (inicio-expresion; condicion-expresion; incremento-expresión) [{]
    declaración;
[}]
Sobra una llave dentro del evento OnClick y es incorrecto el uso del método AddXY, debe ir precedido de su serie, por ejemplo:
Código:
   Chart1->Series[0]->AddXY(AXValue, AYValue, Label, Color);
  // o también podría ser este modo:
  Series1->AddXY (AXValue, AYValue, Label, Color);
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 13-09-2013
DugT DugT is offline
Registrado
NULL
 
Registrado: sep 2013
Posts: 4
Poder: 0
DugT Va por buen camino
Muchas gracias!!

Tienes razón xD, no se porque la previsualización del mensaje me salia todo bien, y cuando se ha enviado ha salido ese engendro xDD. Lo siento.
El código que tengo para representar en la gráfica es este:

Código PHP:
void __fastcall TForm1::Button5Click(TObject *Sender)
{
         for( 
int i=0i<TB i++){

                
Series1->AddXY(i,bloque[i],"Null",clTeeColor);
                
Series2->AddXY(i,bloquef[i],"Null",clTeeColor);

         }
         
Chart1->Refresh();


He probado con Refresh(), CleanupInstance(), y un millón de funciones que vienen por ahí y no consigo refrescar la maldita gráfica


Muchas gracias por la ayuda!! A ver si ahora que esta bien copiado el código a alguien se le ocurre una función para hacer eso!
Responder Con Cita
  #4  
Antiguo 13-09-2013
Avatar de ginkaku
ginkaku ginkaku is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 59
Poder: 12
ginkaku Va por buen camino
Perdon nose si te puedo ayudar pero hace varios años hice una grafica parecida y cargaba los valores de esta forma:
Código Delphi [-]
procedure TForm1.VerEjeCoor1Click(Sender: TObject);
var
x1,y1,x2,y2 : Real;
i : word;
begin
    series1.clear;

  for i := 1 to MA.Filas-1 do
  begin
   x1 := MA.ObtenerElemento(i,1); //esto es rebundante solo obtenia datos de una matriz
   y1 := MA.ObtenerElemento(i,2);
   x2 := MA.ObtenerElemento(i+1,1);
   y2 := MA.ObtenerElemento(i+1,2);
   series1.AddArrow(x1,y1,x2,y2,'Union[ '+IntToStr(i)+' ]', clGreen);
  end;
end;
Se que esta en delphi pero en 5 seg lo puedes llevar a c++ que tambien es mi leguaje preferido. Espero te sirva un saludo
Responder Con Cita
  #5  
Antiguo 13-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DugT.

No sé si interpreto cuál es el problema pero hice una prueba simple:
Código:
#define TB 20

int bloque[TB];
int bloquef[TB];

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  randomize();
  for(int i = 0; i < TB; i++) {
    bloque[i]  = random(200)+1;
    bloquef[i] = random(200)+1;
  }
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  for( int i=0; i < TB ; i++){
    Series1->AddXY(i,bloque[i],IntToStr(bloque[i]), clTeeColor);
    Series2->AddXY(i,bloquef[i],IntToStr(bloquef[i]), clTeeColor);
  }
}
Y obtengo el gráfico:


Saludos

Edito: Si pensas que te puede servir de algo te adjunto los fuentes de la prueba.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-09-2013 a las 15:08:37.
Responder Con Cita
  #6  
Antiguo 13-09-2013
DugT DugT is offline
Registrado
NULL
 
Registrado: sep 2013
Posts: 4
Poder: 0
DugT Va por buen camino
Muchas gracias por responder!!

La gráfica si que se me representa correctamente, pero esa función esta asignada a un botón, entonces debe representar diferentes vectores cada vez que lo pulso. Mi problema reside en que, cuando pulso el botón representa el nuevo vector, pero no elimina el representado anteriormente, con lo cual solapan y se crea un gráfico donde no se ve nada :S. Mi duda era, si hay alguna función para eliminar lo que se ha representado con anterioridad para representar nuevo los nuevos valores del vector.

De nuevo, muchas gracias!
Responder Con Cita
  #7  
Antiguo 13-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por DugT Ver Mensaje
Mi duda era, si hay alguna función para eliminar lo que se ha representado con anterioridad para representar nuevo los nuevos valores del vector.
Haber comenzado por ahí...

Código:
  Series1->Clear();
  Series2->Clear();
Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 13-09-2013
DugT DugT is offline
Registrado
NULL
 
Registrado: sep 2013
Posts: 4
Poder: 0
DugT Va por buen camino
Definitivamente algo me odia, xD. Esta mañana he probado esa misma función no me iba y ahora todo perfecto jajajaja.
En fin, muchísimas gracias a todos por responder y ayudarme a solucionar mi problema! Si en el futuro os puedo ayudar no dudaré en hacerlo.

Nos leemos por aquí! Saludos!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 05:52:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi