Einzelnen Beitrag anzeigen

norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
504 Beiträge
 
Delphi 12 Athens
 
#1

Cursortyp crCross nur innerhalb des Zeichenbereichs eines Charts

  Alt 8. Dez 2018, 22:31
Hallo zusammen,

ich schalte mit folgendem Code den Cursor-Typ von crDefault auf crCross wenn ich mich innerhalb des Zeichenbereichs von TChart befinde
Delphi-Quellcode:
procedure TShowUvDataInChart.chChartMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
// *****************************************************************************************************************************************
// Schaltet zwischen crDefault und crCross um und zeigt innerhalb des Zeichenbereichs Positions-Daten der Maus an
var
  rX, rY: Double;
  iXl, iXr, iYu, iYl: Integer;

begin
  iXl := TChart(Sender).ChartRect.Left;
  iXr := iXl + TChart(Sender).ChartWidth;
  iYu := TChart(Sender).ChartRect.Top;
  iYl := iYu + TChart(Sender).ChartHeight;

  if (Y > iYu) and (Y < iYl) and (X > iXl) and (X < iXr) then
  // Innerhalb des Chartbereichs
  begin
    TChart(Sender).Cursor := crCross;
    TChart(Sender)[0].GetCursorValues(rX, rY);
    TChart(Sender).Foot.Visible := true;
    TChart(Sender).Foot.Caption := Format('Time = %s, %s = %7.5f',
      [FormatDateTime('HH:MM', rX), TChart(Sender).LeftAxis.Title.Caption, rY]);
  end
  else
  begin
    TChart(Sender).Cursor := crDefault;
    TChart(Sender).Foot.Visible := false;
  end;
end;
Das Problem:
Bewegt man sich mit der Maus innerhalb des Zeichenbereichs flimmert der Cursor beim Bewegen die ganze Zeit zwischen crCross und crDefault

Setzt man TChart.Cursor über die Properties auf crCross flimmert der Cursor ausserhalb des Zeichenbereichs

Ich verwende Delphi XE und TeeChart Pro 2012

Grüße
Gerd
  Mit Zitat antworten Zitat