Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
ВнизChart Найти похожие ветки
← →
Litr (2004-05-31 08:58) [0]Привет всем. У меня пару вопросов по Chart.
1.При использовании AllowZoom, т.е когда выделяешь мышкой часть графика, она увеличивается, как узнать на какой масштаб происходит увеличение ?
2.Как увеличить график только по одной оси, т.е растянуть его скажем по оси Х ?
Заранее спасибо.
← →
Семен Сорокин © (2004-05-31 10:17) [1]Series.MaxXValue, Series.MinXValue и Chart.BottomAxis.Minimum, Chart.BottomAxis.Maximum
и соответственно
Series.MaxYValue, Series.MinYValue и Chart.LeftAxis.Minimum, Chart.LeftAxis.Maximum
на мысли не наводит?
еще есть события Chart.OnZoom, Chart.OnUndoZoom
это все что тебе понадобится для обоих пунктов.
← →
Litr (2004-05-31 10:41) [2]У меня следующая проблема:
есть два Charta я хочу добиться, чтобы при увеличении одного графика, второй график увеличивался на такое же значение, графики должны "растягиваться" только по оси Х. При включенной опции AllowZoom:=True у Chart1 делаю следующее:
procedure TForm1.DBChart1Zoom(Sender: TObject);
begin
DBChart1.LeftAxis.Automatic :=True ;
DBChart1.BottomAxis.Automatic := False;
DBChart1.BottomAxis.Minimum := DBChart1.MinXValue( DBChart1.BottomAxis ) ;
DBChart1.BottomAxis.Maximum := DBChart1.MaxXValue( DBChart1.BottomAxis );
DBChart1.BottomAxis.SetMinMax((DBChart1.BottomAxis.Minimum)+0.2,(DBChart1.BottomAxis.Maximum)-0.2);
DBChart2.LeftAxis.Automatic := True ;
DBChart2.BottomAxis.Automatic := False;
DBChart2.BottomAxis.Minimum := DBChart2.MinXValue( DBChart2.BottomAxis ) ;
DBChart2.BottomAxis.Maximum := DBChart2.MaxXValue( DBChart2.BottomAxis ) ;
DBChart2.BottomAxis.SetMinMax((DBChart2.BottomAxis.Minimum)+0.2,(DBChart2.BottomAxis.Maximum)-0.2);
end;
Беда такая, что:
1. при выделении участка происходит увеличение не выделенного участка, а всего графика.
2. при следующем выделении ничего не происходит.
← →
Семен Сорокин © (2004-05-31 11:10) [3]что-то типа этого (не тестил)
procedure TForm1.AnyDBChartZoom(Sender: TObject);
var
_ch: TDBChart;
_kmin, _kmax: double; // коэффициенты
begin
if Sender = DBChart1 then
_ch := DBChart2
else
_ch := DBChart1;
TDBChart(Sender).LeftAxis.SetMinMax(TDBChart(Sender).MinYValue(TDBChart(Sender).LeftAxis),
TDBChart(Sender).MaxYValue(TDBChart(Sender).LeftAxis));
_kmin := TDBChart(Sender).BottomAxis.Minimum/TDBChart(Sender).MinXValue(TDBChart(Sender).BottomAxis);
_kmax := TDBChart(Sender).BottomAxis.Maximum/TDBChart(Sender).MaxXValue(TDBChart(Sender).BottomAxis);
_ch.LeftAxis.SetMinMax(_ch.MinYValue(_ch.LeftAxis), _ch.MaxYValue(_ch.LeftAxis));
_ch.BottomAxis.SetMinMax(_ch.MinXValue(_ch.BottomAxis)*_kmin, _ch.MaxXValue(_ch.BottomAxis)*_kmax)
end;
← →
Litr (2004-05-31 12:46) [4]Спасибо Семен.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.028 c