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