Такой вопрос, имеется к примеру два компонента TChart на форме и в течение выполнения программы на обоих строится график (абциссы одинаковые, а вот ординаты отличаются, т.к. используются разные коэффициенты)...Можно как-нить всё это синхронизировать, т.е. к примеру прокручиваю один график, автоматом прокручивается другой, и то же самое увеличиваю в масштабе один, увеличивается др...Прошу совета, т.к. очень надо...
Vardes
27.03.2007 3:17
Ну и что, даже мне совета никто не может дать????
volvo
27.03.2007 3:49
Ты же не привел пример, КАК ты делаешь прокрутку графика, какие события используешь... Что ты хочешь, чтоб тебе сказали? Начали бы перечислять все случаи, которые возможны?
Напиши небольшой тестовый пример, который делает минимум: чертит 2 графика (любых), и делает то, что ты написал (прокручивает/увеличивает масштаб) с графиками по отдельности, и прикрепи проект сюда... Тогда посмотрим...
А просто так сотрясать воздух для того, чтобы ты потом сказал, что это событие у тебя по другому обрабатывается, и посему способ не подходит - желающих нет...
Vardes
5.04.2007 23:03
Нажмите для просмотра прикрепленного файла Прикрепил проект...там всё реализовано только для одного графика, т.к. проблема теперь в другом... Все методы прокрутки, увеличения автоматически реализуются с помощью мыши, в этом есть большой плюс,т.к. мышь прокручивает изображение, а не переходит к следующей странице(как при кнопочной реализации)...Поэтому самый основной косяк в том, что после увеличения графика методом 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 я так и не нашёл...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.