Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Синхронизация TChart

Автор: Vardes 19.03.2007 13:48

Такой вопрос, имеется к примеру два компонента TChart на форме и в течение выполнения программы на обоих строится график (абциссы одинаковые, а вот ординаты отличаются, т.к. используются разные коэффициенты)...Можно как-нить всё это синхронизировать, т.е. к примеру прокручиваю один график, автоматом прокручивается другой, и то же самое увеличиваю в масштабе один, увеличивается др...Прошу совета, т.к. очень надо...

Автор: Vardes 27.03.2007 3:17

Ну и что, даже мне совета никто не может дать????

Автор: volvo 27.03.2007 3:49

Ты же не привел пример, КАК ты делаешь прокрутку графика, какие события используешь... Что ты хочешь, чтоб тебе сказали? Начали бы перечислять все случаи, которые возможны?

Напиши небольшой тестовый пример, который делает минимум: чертит 2 графика (любых), и делает то, что ты написал (прокручивает/увеличивает масштаб) с графиками по отдельности, и прикрепи проект сюда... Тогда посмотрим...

А просто так сотрясать воздух для того, чтобы ты потом сказал, что это событие у тебя по другому обрабатывается, и посему способ не подходит - желающих нет...

Автор: Vardes 5.04.2007 23:03

Прикрепленный файл  ______.rar ( 5.16 килобайт ) Кол-во скачиваний: 441

Прикрепил проект...там всё реализовано только для одного графика, т.к. проблема теперь в другом...
Все методы прокрутки, увеличения автоматически реализуются с помощью мыши, в этом есть большой плюс,т.к. мышь прокручивает изображение, а не переходит к следующей странице(как при кнопочной реализации)...Поэтому самый основной косяк в том, что после увеличения графика методом ZoomPercent, метод NextPage не работает, а мне нужно пролистать график не используя мыши(((В этом и проблема...

Автор: klem4 5.04.2007 23:33

Если я правильно понял что ты хочешь сделать (сохранять текущий зум после смены страницы), то можно примерно так: Сохранять текущий зум а потом его восстанавливать

implementation
var
zoom : Integer;

// ...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
i: integer;

begin

if key = 27 then begin
Chart1.ZoomPercent(110);
inc(zoom);
end;

if key = 13 then begin
Chart1.ZoomPercent(90);
dec(zoom);
end;

if key = 39 then begin
Chart1.UndoZoom;
Chart1.NextPage;

if zoom >= 0 then
for i := 1 to zoom do
Chart1.ZoomPercent(110)
else
for i := 1 downto zoom
do Chart1.ZoomPercent(90);
end;

if key = 37 then begin
Chart1.UndoZoom;
Chart1.PreviousPage;
if zoom >= 0 then
for i := 1 to zoom
do Chart1.ZoomPercent(110)
else
for i := 1 downto zoom
do Chart1.ZoomPercent(90);
end;
end;




не много лагает иногда надо разобираться.
Да и я тут поменял кнопки смены страниц на Esc и Enter (не помню что за коды у тебя там были)

Автор: Vardes 6.04.2007 0:09

Спасибо, идея понята...
Такой ещё вопрос, как можно реализовать передвижение графика вверх и вниз также с помощью кнопок...к примеру для мышки если задать свойство AllowPanning:=pmVertical, то ей можно будет двигать график по вертикали...Метода типа NextPage я так и не нашёл...