Einzelnen Beitrag anzeigen

Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: TChart: Hint bei MouseOver anzeigen

  Alt 30. Jun 2010, 11:12
Dann hätten wir noch :
Delphi-Quellcode:
procedure TfrmTrendview.ShowValueAtXPos(Zeit : Double);
var
  I : Integer;
  Index : Integer;
  Halb : Integer;
  dtmp : Double;

begin
  lbMouseZeit.Caption := DateTimeToStr(Zeit);
  for I := 1 to cMaxTrendAnzahl do
  begin
    if (FTrends[I].Serie.XValues.Count > 0) Then
    Begin
      With FTrends[I].Serie do
      Begin
        Try
          Index := YValues.Count Div 2;
          Halb := Index;
          While Halb > 4 do
          Begin
            Halb := Halb div 2;
            dtmp := XValues.Value[Index];
            if dtmp > Zeit Then Dec(Index,Halb)
            else
              if dtmp < Zeit Then Inc(Index,Halb);
          end;
          dtmp := XValues.Value[Index];
          if dtmp > Zeit Then
            While XValues.Value[Index] > Zeit do Dec(Index)
          else
            While XValues.Value[Index] < Zeit do Inc(Index);
        Except
          Index := -1;
        end;
// Ausgabe der Werte
        if (Index > -1) and (Index < YValues.Count) Then
        Begin
          dtmp := YValues[Index];
          dtmp := FTrends[I].KurvenDaten.Ma +
          (dtmp * (FTrends[I].KurvenDaten.Me - FTrends[I].KurvenDaten.MA) / 100);
        end
        else
          dtmp := -1000;
      end;
      ShowTrendValue(I,dtmp);
    end;
  end;
end;
Du übergibst einen X-Wert und die Y-Werte, die diesem X-Wert am nächsten sind, werden ausgegeben
Aufruf :
Delphi-Quellcode:
procedure TfrmTrendview.Chart1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
Var
  Zeit : Double;
begin
// ist die Maus im Kurvenrechteck und der Trackbar nicht eingeschaltet ?
  if (PtInRect(Chart1.ChartRect,Point(X,Y))) and not fLinieanIsAn then
  begin
// Zeit der Mausposition Berechnen
    Zeit := Chart1.BottomAxis.CalcPosPoint(X);
    ShowValueAtXPos(Zeit);
  end; { if Maus im Kurvenbereich  }
end;
Glückauf
  Mit Zitat antworten Zitat