Показать сообщение отдельно
  #1  
Старый 18.12.2017, 22:31
Konstantin-78 Konstantin-78 вне форума
Новичок
 
Регистрация: 27.04.2015
Сообщения: 76
Версия Delphi: Delphi7
Репутация: 10
По умолчанию TChart не всегда отображает hint

Доброе время суток,

Есть TСhart (chDiagram) и у него 2 серии - sDayContribution и sDiffPower, при подводе мышки к точкам на TChart должен появляться hint.

Проблема в том что в следующем коде, hint появляется только для той серии, которая (в коде) указана последней (т.е. в конкретном случае для "sDiffPower")

Код:
procedure TFDiagram.chDiagramMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  SeriesIndexDiff, SeriesIndexContrib: Integer;
begin

  SeriesIndexContrib := sDayContribution.Clicked(X, Y);
  chDiagram.ShowHint := SeriesIndexContrib <> -1;
  if (chDiagram.ShowHint) then  
    chDiagram.Hint:= DateToStr(sDayContribution.XValue[SeriesIndexContrib]); 

  

  SeriesIndexDiff := sDiffPower.Clicked(X, Y);
  chDiagram.ShowHint := SeriesIndexDiff <> -1;
  if (chDiagram.ShowHint) then  
    chDiagram.Hint:= DateToStr(sDiffPower.XValue[SeriesIndexDiff]); 
 
end;

При "Step over", hint значения присваиваются (chDiagram.Hint), только hint не выводится.

Пушут, что понять на какой серии мышь находится можно строками
Код:
if sDayContribution.Clicked(X, Y) >= 0 then
и
Код:
if sDiffPower.Clicked(X, Y) >= 0 then
но как-то не очень помогает, то... да оно конечно различает серии, но тем неменее hint всеравно блокируется чем-то

Только помогает, если я создам приватную переменную и буду подставлять вместо "if sDayContribution.Clicked(X, Y) >= 0 then" и "if sDiffPower.Clicked(X, Y) >= 0 then"


Как быть?
Ответить с цитированием