Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Пересечение X и Y оси


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

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

Автор: former 31.5.2007, 18:01
Это можно сделать следующим образом:

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

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

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;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)