Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пересечение X и Y оси, TChart, TQRChart 
:(
    Опции темы
Chyslyvchyk
Дата 21.5.2007, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 446
Регистрация: 9.5.2004

Репутация: нет
Всего: 5



В bar графиках компонента TChart & TQRChart оси X и Y пересекаюся в значении 0. При наявности отрицательных значений, ось Х из нулевого значения смещается вниз по оси Y. 

Ищу свойства в TChart, отвечающие за оставление хотя бы штрих-пунктирной оси Х в нулевом значении X и Y при наявности отрицательных значений. Подозреваю, что это может быть на закладке Axis ("Оси", наверное по-русски), но ничего подходящего найти там не могу. 


--------------------
Простота - сестра таланта!
PM MAIL   Вверх
former
Дата 31.5.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: нет
Всего: 17



Это можно сделать следующим образом:

Само перекрестие:
Код

//------------------------------------------------------------------------------
//------------- Процедуры трассера ---------------------------------------------
//------------------------------------------------------------------------------

procedure TForm1.Trasser(X,Y: Integer; Charts:TChart; Seriess:TLineSeries; Edits1,Edits2:TEdit);
 Procedure DrawCross(AX,AY:Integer);
  begin
    With Charts,Canvas do
    begin
      Pen.Color:=CrossHairColor;
      Pen.Style:=CrossHairStyle;
      Pen.Mode:=pmXor;
      Pen.Width:=1;
      MoveTo(ax,ChartRect.Top-Height3D);
      LineTo(ax,ChartRect.Bottom-Height3D);
      MoveTo(ChartRect.Left+Width3D,ay);
      LineTo(ChartRect.Right+Width3D,ay);
    end;
  end;
Var tmpX,tmpY:Double;
begin
  Charts.Cursor:=crCross;
  if (OldX<>-1) then
  begin
    DrawCross(OldX,OldY);
    OldX:=-1;
  end;
  if PtInRect( Charts.ChartRect, Point(X-Charts.Width3D,Y+Charts.Height3D)  ) then
  begin
    DrawCross(x,y);
    OldX:=x;
    OldY:=y;
  end;
  With Seriess do
    begin
      GetCursorValues(tmpX,tmpY);
      Edits1.Text:=GetVertAxis.LabelValue(tmpY)+'e-'+IntToStr(MasshtabC);
      Edits2.Text:=GetHorizAxis.LabelValue(tmpX);
    end;
end;



Использование:
Код

procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
    Trasser(X,Y,Chart1,Series1,Edit1,Edit2);
end;



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.