Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2017, 20:56   #1
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию В чем различия строк кода

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

Есть 2 варианта вывода hint на TChart
Вариант №1 (выводит hint на TChart один/первый раз и перестает выводить)
Код:
procedure TFDiagram.chDiagramMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  SeriesIndexDiff, SeriesIndexContrib: Integer;
begin

  if sDiffPower.Clicked(X, Y) <> -1 then
  begin
    chDiagram.ShowHint := true;
    SeriesIndexDiff := sDiffPower.Clicked(X, Y);
    chDiagram.Hint := DateToStr(sDiffPower.XValue[SeriesIndexDiff]); //не отрабатывает
   
    begin //  проверка отработки - отрабатывает
      lNamesPool.Caption := DateToStr(sDiffPower.XValue[SeriesIndexDiff]); 
      if chDiagram.ShowHint then
        lNamesPool.Caption := lNamesPool.Caption+' = true'
      else lNamesPool.Caption := lNamesPool.Caption+' = false' 
    end;
end;
на Tchart находится label, так вот hint, не самом TChart, перестает отображаться после первого раза, но если мышку наведешь на label, после того как ее подводит к точку на Series, то hint выпадает с знением точки.


Вариант №2 (работает и выводит hint все время)
Код:
procedure TFDiagram.chDiagramMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  SeriesIndexDiff, SeriesIndexContrib: Integer;
begin
                   
  SeriesIndexDiff := sDiffPower.Clicked(X, Y);
  chDiagram.ShowHint := SeriesIndexDiff <> -1;
  if (chDiagram.ShowHint) then  
    chDiagram.Hint:= DateToStr(sDiffPower.XValue[SeriesIndexDiff]);
end;
В чем разница между этими вариантами?
Спасибо.

Последний раз редактировалось KBO; 18.12.2017 в 21:56.
KBO вне форума Ответить с цитированием
Старый 18.12.2017, 23:54   #2
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Сообщений: 594
По умолчанию

Первый вариант - хинт выводится только по клику
Код:
if sDiffPower.Clicked(X, Y) <> -1 then
kropotkina-alice вне форума Ответить с цитированием
Старый 19.12.2017, 00:28   #3
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Первый вариант - хинт выводится только по клику
Код:
if sDiffPower.Clicked(X, Y) <> -1 then
Ну может быть не совсем так, иначе бы в первом варианте без клика не работал например "// проверка отработки - отрабатывает" а он работает просто если мышей водишь по TChart
KBO вне форума Ответить с цитированием
Старый 19.12.2017, 01:52   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Во втором куске кода SeriesIndexDiff не зависит от значения sDiffPower.Clicked(X, Y);
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 19.12.2017, 02:03   #5
KBO
Форумчанин
 
Регистрация: 11.06.2010
Сообщений: 525
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Во втором куске кода SeriesIndexDiff не зависит от значения sDiffPower.Clicked(X, Y);
т.е.
это как?
и там и там есть эти строки
Код:
SeriesIndexDiff := sDiffPower.Clicked(X, Y);
???

hint - заполняется правильно и там и там...

Последний раз редактировалось KBO; 19.12.2017 в 02:06.
KBO вне форума Ответить с цитированием
Старый 19.12.2017, 06:18   #6
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Сообщение от KBO Посмотреть сообщение
т.е.
это как?
и там и там есть эти строки
Строки-то есть, но в одном случае
Код:
 SeriesIndexDiff := sDiffPower.Clicked(X, Y);
всегда, а в другом - только если
Код:
sDiffPower.Clicked(X, Y) <> -1
. Иначе говоря, в одном случае SeriesIndexDiff принимает все значения, включая -1, в другом - все, исключая -1
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чем разница такого кода? artemavd Общие вопросы Delphi 7 09.09.2012 17:45
В чем различия между файлами Unit.cpp и Unit.h? WarHamster Общие вопросы C/C++ 1 14.03.2012 14:25
В чем ошибка кода??? stenl1 C# (си шарп) 4 28.11.2011 21:15
в чем ошибка кода Валентин1990 Помощь студентам 10 01.09.2011 00:20
MASM и MASM32 - в чем различия? EVO_VITM Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 18 02.07.2010 08:45