Помощь - Поиск - Пользователи - Календарь
Полная версия: Синхронизация TChart
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Vardes
Такой вопрос, имеется к примеру два компонента TChart на форме и в течение выполнения программы на обоих строится график (абциссы одинаковые, а вот ординаты отличаются, т.к. используются разные коэффициенты)...Можно как-нить всё это синхронизировать, т.е. к примеру прокручиваю один график, автоматом прокручивается другой, и то же самое увеличиваю в масштабе один, увеличивается др...Прошу совета, т.к. очень надо...
Vardes
Ну и что, даже мне совета никто не может дать????
volvo
Ты же не привел пример, КАК ты делаешь прокрутку графика, какие события используешь... Что ты хочешь, чтоб тебе сказали? Начали бы перечислять все случаи, которые возможны?

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

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

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
Спасибо, идея понята...
Такой ещё вопрос, как можно реализовать передвижение графика вверх и вниз также с помощью кнопок...к примеру для мышки если задать свойство AllowPanning:=pmVertical, то ей можно будет двигать график по вертикали...Метода типа NextPage я так и не нашёл...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.