Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   cambiar tipo de grafico en Chart en ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=6268)

Masu 28-12-2003 19:01:31

cambiar tipo de grafico en Chart en ejecucion
 
Hola a todos,


tengo un problemita y es que no se como puedo cambiar el tipo de grafico de un tchart en ejecucion, es decir, si lo configuro para que sea como una tarta, como puedo hacer para que en ejecucion pulsando un button pase a ser de barras por ejemplo.

Necesito saber en que propiedad se guarda ese dato.

Gracias y saludos :D

DarkByte 28-12-2003 20:41:18

He estado echando una ojeada. Me he queado antrancado en Chart1.Series.Style ... pues me parece que por ahí debe de estar eso. De todos modos no me eche mucha cuenta, mi nivel en Delphi no es muy bueno que digamos...

Siento no haberte podido ayudar :(

elorza 09-01-2008 11:20:20

Hola, tengo el mismo problema. Lo que a mi me pasa es que no se de qué tipo definir una variable que sea válido para todos los tipos. Haber si se me entiende:

procedure ....
var una:TBarSeries;
begin
una:=TBarSeries.Create(Chart1);
Chart1.addseries(una);
...
end;

Pero hay alguna manera que esa variabel una sea de algún otro tipo y le pueda asignar el valor mediante un parámetro de entrada?

procedure ... (tipo:xxxxx)
var una: xxxx;
begin
una:=xxxx.Create(Chart1);
Chart1.addseries(una);
...
end;
¡Suponiendo que "tipo" es la variable que se le pasa en ejecución con valor por ejemplo de TLineSeries,TBarSeries,TAreaSeries,...
Yo necesito saber esta variable llamada "tipo" de que tipo tiene que ser (general para todos los tipos)!

jachguate 09-01-2008 15:46:33

Podes tratar polimórficamente a las series partiendo de su clase base: TChartSeries

Acabo de hacer esto, que funcionó perfectamente:

Código Delphi [-]
function TForm1.CreaSerie(Clase: TChartSeriesClass): TChartSeries;
begin
  Result := Clase.Create(Chart1);
  Chart1.AddSeries(Result);
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
  Result.Add(random(50));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CreaSerie(TBarSeries);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  CreaSerie(TLineSeries);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  CreaSerie(THorizBarSeries);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  CreaSerie(THorizLineSeries);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  CreaSerie(TAreaSeries);
end;

Hasta luego.

;)

elorza 10-01-2008 09:32:40

Muchas muchas muchas gracias!!!!!!!!!!!!!!!!!!!!

elorza 10-01-2008 10:40:24

Ahora tengo otra duda,

Primero visualizo la gráfica en tipo "TBarSeries" y a continuacion, lo convierto en "TAreaSeries". 2 duda:

1) ¿cómo le puedo indicar que el color de cada área sea diferente?

2) Al visualizar de tipo "TAreaSeries" se pierden los axis y los walls (lógico) pero luego al volver a visualizar de tipo "TBarSeries" esos axis y walls siguen desaparecido. Yo quiero que vuelvan a aparecer. Los axis ya lo he conseguido: Chart1.AxisVisible:=true; pero no encuentro el código para los walls.

¿Me podrías ayudar?

Gracias de antemano!

jachguate 10-01-2008 17:53:10

Cita:

Empezado por elorza (Mensaje 257121)
Muchas muchas muchas gracias!!!!!!!!!!!!!!!!!!!!

OOP + Delphi, amigo... esas emociones son constantes... :p
Cita:

Empezado por elorza (Mensaje 257121)
¿cómo le puedo indicar que el color de cada área sea diferente?
...
¿Me podrías ayudar?

Mirá las propiedades de los Items de la serie ;)

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 19:47:38.

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