|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.11.2013, 14:55 | #1 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 56
|
неправильный zoom в TChart
Всем привет! Тут такая проблема. Когда работал с TChart на Delphi7, зум в нем происходил одним образом, а когда взялся за TChart в RAD XE5, зум происходит иным образом, нежелательным )
Такой вот был код зума на Delphi7: Код:
Код:
Настройки TCharta в обоих случаях - идентичные абсолютно. |
15.11.2013, 22:58 | #2 |
Регистрация: 01.04.2010
Сообщений: 8
|
после
procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Chart1.SetFocus; end; в чарте при прокрутке мишкой...прокручивается график по оси Y....как ето отключить? обработка прокрутки колеса вниз идет хорошо procedure TForm1.Chart1MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); begin // Детекция движения колеса вниз Chart1.ZoomPercent(90); end; procedure TForm1.Chart1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Chart1.ZoomPercent(110); end; а прокрутка вверх - прокручивается график по оси Y при зуме в кнопочном режиме....работает хорошо.... |
17.11.2013, 21:24 | #3 |
Регистрация: 01.04.2010
Сообщений: 8
|
вообщето не Chart1MouseUp, а Chart1MouseWheelUp...натупил немного.....
но при масштабировании... график смещается относительно центра то вверх...то вниз... сделал.....может кому то пригодится... procedure TForm1.Chart1MouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin Handled:=true; if WheelDelta>0 then Chart1.ZoomPercent(110) else if WheelDelta<0 then Chart1.ZoomPercent(90) end; Handled поставил тру...запретил прокручивание.....а с помощью параметра WheelDelta определил направление прокручивания.... |
17.11.2013, 22:06 | #4 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
А вы не пробовали просто выделить квадратиком нужно место для зума?
|
17.11.2013, 23:47 | #5 |
Регистрация: 01.04.2010
Сообщений: 8
|
|
12.12.2013, 11:01 | #6 |
Пользователь
Регистрация: 11.09.2013
Сообщений: 56
|
ребята, возвращаясь к первому посту этой темы.. пожалуйста, откликнитесь кто-нибудь, помогите )) нужен нормальный зум в тчарт, ведь он способен на это же...
существует кнопка "+" и кнопка "-". когда щелкаем по плюсу, то по логике, должно происходить увеличение чарта на 25%: Код:
Код:
Код:
при нажатии кнопки +, график возвращается в исходное состояние (100%), вылезает ShowMessage, нажимаем ОК, и график увеличивается на 25%. При нажатии кнопки "минус" - аналогично, но уменьшается на 75%. Только в этом случае, предыдущий зум уже не запоминается, он сбрасывается действительно, и происходит увеличение/уменьшение именно на указанное число. Так в чем же здесь соль? -------------- еще одно наблюдение. если после прорисовки графика например, сразу же прописать Chart1.ZoomPercent(X); (где X - любое число, хоть 1, хоть миллиард), график увеличивается на огромное число, всегда одинаковое, и в дальнейшем, команда ZoomPercent игнорируется в принципе.. вот это все мои наблюдения.что вы могли бы сказать? Последний раз редактировалось impeee; 12.12.2013 в 11:08. |
12.12.2013, 11:46 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А что сказать. Уменьшение и увеличение от текущего состояния идет. 125% от 1 даст 1,25. 75% от 1,25 даст 0,8875, а не 0,75 как ожидаете. Нужно пересчитывать процент для арифметической прогресси - второй раз 125% нужно превратить в 120%, третий - в 116.66% и т.д.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 12.12.2013 в 11:51. |
12.12.2013, 11:53 | #8 | |
Пользователь
Регистрация: 11.09.2013
Сообщений: 56
|
Цитата:
Я пытался убирать/включать всякие свойства вроде HistoricalZoom, FullRepaint, KeepAspectRatio, но никакой реакции не следует. я так понимаю, они предназначены для того самого увеличения, когда пользователь зажатой мышкой рисует квадрат зума на графике. может есть какие-то winapi функции)) или еще что-то. я не знаю, ступор и отчаяние. я бы бросил все это давно, не стал бы возиться с этим маразмом, но тут вот принципиально приспичило человеку (( Последний раз редактировалось impeee; 12.12.2013 в 11:59. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Zoom в делфи. | Rockot | Общие вопросы Delphi | 2 | 14.01.2013 04:50 |
Chart + Zoom | WorldMaster | C# (си шарп) | 0 | 04.11.2012 23:24 |
zoom по горизонтали tchart | sautina | Компоненты Delphi | 2 | 13.07.2012 23:50 |
JS + CSS zoom | Gennadiy | JavaScript, Ajax | 1 | 12.05.2012 14:23 |