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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2010, 12:12   #1
dukeartem
Новичок
Джуниор
 
Регистрация: 06.01.2010
Сообщений: 2
По умолчанию chart и всплывающая легенда

Всем привет.
Подскажите, как в компоненте Chart в Delphi 6, сделать, что бы при наведении на график появлялось, что-то типа подсказки? Где было бы написано как называется этот график и значение в этой координате. Предполагается на одном полотне держать до 35 графиков и все они стремятся, примерно, в одном направлении, поэтому творится неразбериха, даже если пользоваться зуммом. Такие вещи умеет компонент teechart, но ломанные компоненты не очень хочется вставлять в программу, тем более, что chart всем, кроме этого, устраивает.
dukeartem вне форума Ответить с цитированием
Старый 06.01.2010, 13:55   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

такие вещи умеет и tchart обычный, однако для этого "ручками" нужно поработать... например, используя события onafterdraw и onmousemove компонента:
Код:
procedure TForm1.chMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var i: integer;
    tmpX,tmpY:Double;
begin
 gx:=x; gy:=y;
 ch.Repaint;

 for i:=0 to ch.SeriesCount-1 do begin
  ch.Series[i].GetCursorValues(tmpX,tmpY);
  metka1:= ch.Series[i].GetHorizAxis.LabelValue(tmpX);
  metka2:= ch.Series[i].GetVertAxis.LabelValue(tmpY);


  sb.Panels[0].Text:= 'X= '+ ch.Series[i].GetHorizAxis.LabelValue(tmpX);
  sb.Panels[1].Text:= 'Y= '+ ch.Series[i].GetVertAxis.LabelValue(tmpY);

  if ch.Series[i].GetCursorValueIndex<>-1 then begin
   metka3:= ch.Series[i].Name;
   sb.Panels[2].Text:= 'Title: ' + metka3;

   metka4:= ColorToString(ch.Series[i].ValueColor[0]);
   metka4:= copy(metka4, 3, length(metka4));
   sb.Panels[3].Text:= 'Color: ' + metka4
  end

 end
end;

procedure TForm1.chAfterDraw(Sender: TObject);
var i: integer;
begin
 with (Sender as TChart).Canvas do begin
  Font.Size:= 8; Font.Color:= clsilver;
  // прицел-
  if gx>1then begin
   pen.Color:=clsilver;
   moveto(gx,0);     lineto(gx,gy-15);
   moveto(gx,gy+15); lineto(gx,ch.Height);

   TextOut(gx+10,gy+font.Height-2,metka1);
   TextOut(gx+10,gy,metka2);
   TextOut(gx+10 + 50,gy+font.Height-2, metka3);
   TextOut(gx+10 + 50,gy, metka4);
  end;

  // текст-
  //for i:=0 to length(txt_)-1 do
  // TextOut(txt_x[i],txt_y[i],txt_[i]);
  // метка-
  {for i:=0 to length(metx_)-1 do begin
   Brush.Color:=clblack;
   Pen.Color:=clblue;
   Rectangle(met_x[i]-3,met_y[i]-3,met_x[i]+3,met_y[i]+3);
   Line(met_x[i],met_y[i],met_x[i]+5,met_y[i]-15);
   Line(met_x[i]+5,met_y[i]-15,met_x[i]+30,met_y[i]-15);
   Brush.Color:=clwhite;
   TextOut(met_x[i]+5,met_y[i]-33,mety_[i]);
   TextOut(met_x[i]+5,met_y[i]-43,metx_[i])
  end  }
 end
end;
подробнее, прилагаю тестовый проект (см. вложение)...
Изображения
Тип файла: jpg Копировать из новый-3.jpg (84.4 Кб, 257 просмотров)
Вложения
Тип файла: zip rachart.zip (2.5 Кб, 64 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.01.2010, 15:13   #3
dukeartem
Новичок
Джуниор
 
Регистрация: 06.01.2010
Сообщений: 2
По умолчанию

Большое спасибо.
dukeartem вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплывающая таблица asg Microsoft Office Excel 6 18.03.2009 07:58
Всплывающая подсказка (С#) Лучик_света Помощь студентам 1 25.10.2008 10:44
Моя всплывающая подсказка не работает в IE Stason JavaScript, Ajax 1 11.09.2008 18:18
Всплывающая картинка gotex Общие вопросы Delphi 2 23.07.2008 17:34
Диаграммы, легенда с 2 сторон. WIC Microsoft Office Excel 8 02.10.2007 17:17