![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
AlexSCH |
![]()
Сообщение
#21
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
В ходе выполнения программы я даю названия осям, при повторной загрузке файла с графической информацией, при отображении на его осях появляются новые названия, а также остаются старые(от прошлой графической информации), как от этого избавится? может быть 2 раза перестраивать график, 1 раз без названий (загнать в область названий пустоту), 2 раз уже с новыми названиями. Я делал так, но ничего не получилось, все равно остаются старые названия:
Код Chart1.LeftAxis.Title.Caption:=''; Chart1.Repaint; Chart1.LeftAxis.Title.Caption:=Ch1; defaultLabels := not defaultLabels; Chart1.Repaint; |
volvo |
![]()
Сообщение
#22
|
Гость ![]() |
Ну, это смотря как ты "повторно загружаешь файл с графической информацией". Код, при котором не происходит корректного изменения Axis.Title.Caption - в студию...
|
AlexSCH |
![]()
Сообщение
#23
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Думал, думал как же это корректно выложить...... пришел к выводу что приклепу весь свой проект, в архиве с проектом есть файл '10', при запуске проги его и нужно открывать. Попробуй 2 раза его открыть, сразу добавляется название в ось Y (появляется лишняя буква В), а ось Х почему-то увеличивается в 2 раза..........
p.s. Файл PRB.EXE также нужен для корректной работы (в смысле не спеши его стирать ![]() 2Volvo извините за бардак в проекте.............. ![]() Прикрепленные файлы ![]() |
volvo |
![]()
Сообщение
#24
|
Гость ![]() |
По поводу
Цитата(AlexSCH @ 19.08.2006 16:23) ось Х почему-то увеличивается в 2 раза.......... Очень просто... Ты делаешь Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));, а кто при входе в процедуру procedure TForm1.N4Click(Sender: TObject);будет T сбрасывать? Оно же накапливается, и при третьей загрузке длина оси X утроится по сравнению с первой, если T не обнулить ![]() Теперь про ось Y... Я не добрался, честно говоря, до причины такого поведения Axis.Title.Caption, но одно выяснил совершенно точно: у тебя здесь: Chart1.LeftAxis.Title.Caption:=''; в Ch1 хранится неверное значение. То есть, прибавляется B... Проблема, скорее всего, схожая, где-то не присвоил Ch := ''; Кстати, если этот проект писать как положено, используя процедуры/функции/Case, то от почти 2000 строк, что есть сейчас останется в худшем случае 400. Как думаешь, какую программу легче сопровождать? ![]() |
AlexSCH |
![]()
Сообщение
#25
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо, разобрался, заработало
![]() |
AlexSCH |
![]()
Сообщение
#26
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
У меня еще вопрос.
Как можно поменять масштаб дополнительной оси. Дополнительную ось я создавал так Код procedure TForm1.Series1AfterDrawValues(Sender: TObject); var posaxis:longint; begin With Chart1 do begin { Calculate axis position and draw... } PosAxis:=ChartRect.Left+Trunc(ChartWidth*YPercent/1000.0); LeftAxis.CustomDraw(posaxis-5,posaxis-5,posaxis+0,true); end; end; Получилось то что на вложенной картинке. ![]() Требуется, чтобы дополнительная ось при том же масштабе графика, была в другм масштабе единиц измерения. То есть по типу того, как до этого сделали с главными осями Х и Y. Как это сделать? |
volvo |
![]()
Сообщение
#27
|
Гость ![]() |
AlexSCH, во-первых, картинку присоедини сюда (ее невозможно посмотреть, сервер не отвечает), а во-вторых, если даешь код, так давай так, чтобы было понятно, что чему равняется...
YPercent это что такое и чему равно, например? |
AlexSCH |
![]()
Сообщение
#28
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот архив, с программой.
YPercent это из демо TeeChart к делфе, где оси кординат могут перемещатся, с помошью таймера, я таймер отключил, просто переменная осталась. Прикрепленные файлы ![]() |
klem4 |
![]()
Сообщение
#29
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
AlexSCH, а где Unit2 ?
кмх ... Попробуй использовать циклы в программе ![]() j:=1; Такой код во первых выглядит странно, во вторых читается плохо Ты можешь написать задание полностью ? Что-то мне подсказвыает, что этот код можно сократить в несколько раз, и обойтись без таких вещей : t,tt,ttt,tttt,ttttt:integer; -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
AlexSCH |
![]()
Сообщение
#30
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Unit 2 добавил.
Файл с информацией в архиве под именем "10" Согласен, код корявый. Добавление дополнительной оси происходит в самом конце кода вот этой процедурой procedure TForm1.Series1AfterDrawValues(Sender: TObject); Цитата ты можешь написать задание полностью Задача программы отображать графическую информацию. Эта информация хранится в файле, например под именем "10", в поле TChart выводится несколько графиков, изначально они идут в единой системе координат, а требуется, при том же масштабе(расположении) графиков, чтобы было несколько осей Y, с различными масштабами единиц измерения. В файле copy11 рисунок, там уже есть 2шкала, но я не знаю как поменять ее относительный масштаб Сообщение отредактировано: AlexSCH - 29.08.2006 16:11 Эскизы прикрепленных изображений ![]() Прикрепленные файлы ![]() |
AlexSCH |
![]()
Сообщение
#31
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Действительно никто не знает как поменять масштаб на второй оси??? или это действительно нереально??
|
volvo |
![]()
Сообщение
#32
|
Гость ![]() |
Да ты покажи, НА ЧТО ты хочешь поменять? Как это выглядеть должно??? Телепаты кончились.
И программу подправь, а то она у тебя через раз дает ошибку обращения к TXT файлу, сколько можно ее перезапускать? |
AlexSCH |
![]()
Сообщение
#33
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Да ты покажи, НА ЧТО ты хочешь поменять? Как это выглядеть должно??? Телепаты кончились. Выглядеть это должно так: первая ось Y остается неизменной, а вторая должна отображать те же цифры что и первая, только разделенные на коэффициент, например 10. То есть, если левая шкала показывает 100, то правая на этом-же уровне далжна показывать 10. Коэффициент необязательно может быть целым числом. Цитата И программу подправь, а то она у тебя через раз дает ошибку обращения к TXT файлу, сколько можно ее перезапускать? Задержку я поставил побольше должно помочь. Измененный проект прилагается. Прикрепленные файлы ![]() |
AlexSCH |
![]()
Сообщение
#34
|
Новичок ![]() Группа: Пользователи Сообщений: 36 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я переделал вид программного окна в графическом редакторе, должно выглядеть вот так как на приклепленном изображении, то есть вторая ось Y представлена в другом масштабе. Как добавленную ось Y перевести в другой масштаб? (код на дополнительную ось Y представлен в пердыдущих постах, проблема в том, что дополнительная ось Y по масштабу полностью соответствует начальной оси Y, а нужно чтобы их масштабы отличались)
Сообщение отредактировано: AlexSCH - 28.09.2006 10:38 Эскизы прикрепленных изображений ![]() |
Гость |
![]()
Сообщение
#35
|
Гость ![]() |
Помогите пожалуйста с моей проблемой...
кусок кода: .... var cicli:integer; a,b:double; Matrix6, Matrix1: array of integer; begin setlength(Matrix6, 6); setlength(Matrix1, 6); Matrix6[1]:=2; Matrix6[2]:=51; Matrix6[3]:=53; Matrix6[4]:=23; Matrix6[5]:=1; Matrix1[1]:=14; Matrix1[2]:=52; Matrix1[3]:=13; Matrix1[4]:=5; Matrix1[5]:=23; for cicli:=1 to 5 do begin a:=Matrix6[cicli]; b:=Matrix1[cicli]; unit4.Form4.Chart1.SeriesList[0].AddXY(a,b,'',clRed); end; unit4.Form4.Chart1.LeftAxis.TitLE.Caption:='KTG'; unit4.Form4.Chart1.BottomAxis.Title.Caption:='MR'; unit4.Form4.ShowModal; ... В общем, проблема в том, что график строится не в том порядке, в каком я ему добавляю точки, а по возрастанию оси Х...т.е. 1,2,23,51,53... а не 2,51,53,23,1. Как разрешить проблему? |
![]() ![]() |
![]() |
Текстовая версия | 14.09.2025 4:16 |