Показать сообщение отдельно
  #5  
Старый 19.12.2017, 19:40
Konstantin-78 Konstantin-78 вне форума
Новичок
 
Регистрация: 27.04.2015
Сообщения: 76
Версия Delphi: Delphi7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Потому как свойство chDiagram.ShowHint было отключено вторым куском

Я бы с удовольствием в это поверил, еслиб перед тем как задавать на форуме вопрос, не проверил бы этот блок с "условием" .Clicked(X, Y) <> -1

Код:
procedure TFDiagram.chDiagramMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  SeriesIndexDiff, SeriesIndexContrib: Integer;
begin
  if sDayContribution.Clicked(X, Y) <> -1 then
  begin  
    SeriesIndexContrib := sDayContribution.Clicked(X, Y);
    chDiagram.ShowHint := SeriesIndexContrib <> -1;
    if (chDiagram.ShowHint) then 
      chDiagram.Hint:= DateToStr(sDayContribution.XValue[SeriesIndexContrib]); 
  end;
   
  if sDiffPower.Clicked(X, Y) <> -1 then
  begin  
    SeriesIndexDiff := sDiffPower.Clicked(X, Y);
    chDiagram.ShowHint := SeriesIndexDiff <> -1;
    if (chDiagram.ShowHint) then 
      chDiagram.Hint:= DateToStr(sDiffPower.XValue[SeriesIndexDiff]);
  end;
end;

в данном примере, всегда при наведении мышей на одну из линий на TChart, выполняется только один конкретный if.
Та он вообщем говоря криво работает, т.к. первый раз выводит hint нормально, а все последующие разы, если мышкой не выйти за границы TChart (т.е. мышку на форму не завести), то hint вообще перестает показываться. При этом при наведении мышкой опять на TChart, hint отображается как только мышка проходит границу TChart
Ответить с цитированием