Ver Mensaje Individual
  #5  
Antiguo 14-04-2008
donsenior donsenior is offline
Registrado
 
Registrado: mar 2008
Posts: 4
Reputación: 0
donsenior Va por buen camino
A ver si me puedo explicar un poco mejor... Tengo un TChart, al pasar el cursor por arriba de una serie pretendo mostrar una ventana con datos (Label de la serie, valor, alguna imagen, configurarle transparencia, etc). Esta ventana quiero que siga la posicion del mouse a medida que lo muevo, entonces hago lo siguiente en el OnMouseMove del chart:

Código Delphi [-]
  GetCursorPos(P);
  SPIndex:= PieChartSeries.GetCursorValueIndex;

  if (SPIndex > -1) then
  begin
    if (SPIndex <> PieChartSeries.Tag) then
   //Si cambio de serie actualizo los datos del "Hint"
    begin
      PieChartSeries.Tag:= SPIndex;
      SPName:= PieChartSeries.XLabel[SPIndex];
      HintForm.Hide;
      HintForm.SetHeader(SPName); 
     //SetHeader es un metodo propio que setea un Label
      end;
    end;
    HintForm.Left:= P.X;
    HintForm.Top:= P.Y;
    HintForm.Show
  end
  else
    HintForm.Hide

Esto funciona bastante bien, el problema es que HintForm.Show desactiva el Form principal y HintForm.Hide, lo vuelve activar, lo cual produce un efecto que no me gusta (sobre todo si es un grafico de Barras ya que SPIndex:= BarChartSeries.GetCursorValueIndex casi siempre da < 0)

Eso es todo, espero que se entienda
Responder Con Cita