IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Работа с осями в Tchart
сообщение
Сообщение #21


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


В ходе выполнения программы я даю названия осям, при повторной загрузке файла с графической информацией, при отображении на его осях появляются новые названия, а также остаются старые(от прошлой графической информации), как от этого избавится? может быть 2 раза перестраивать график, 1 раз без названий (загнать в область названий пустоту), 2 раз уже с новыми названиями. Я делал так, но ничего не получилось, все равно остаются старые названия:
Код

Chart1.LeftAxis.Title.Caption:='';
Chart1.Repaint;
Chart1.LeftAxis.Title.Caption:=Ch1;
defaultLabels := not defaultLabels;
Chart1.Repaint;

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Гость






Ну, это смотря как ты "повторно загружаешь файл с графической информацией". Код, при котором не происходит корректного изменения Axis.Title.Caption - в студию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Думал, думал как же это корректно выложить...... пришел к выводу что приклепу весь свой проект, в архиве с проектом есть файл '10', при запуске проги его и нужно открывать. Попробуй 2 раза его открыть, сразу добавляется название в ось Y (появляется лишняя буква В), а ось Х почему-то увеличивается в 2 раза..........
p.s. Файл PRB.EXE также нужен для корректной работы (в смысле не спеши его стирать smile.gif ).

2Volvo извините за бардак в проекте.............. smile.gif


Прикрепленные файлы
Прикрепленный файл  _____.rar ( 40.93 килобайт ) Кол-во скачиваний: 339
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Гость






По поводу
Цитата(AlexSCH @ 19.08.2006 16:23)
ось Х почему-то увеличивается в 2 раза..........

Очень просто... Ты делаешь
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
, а кто при входе в процедуру
procedure TForm1.N4Click(Sender: TObject);
begin
If OpenDialog1.Execute
then begin
t := 0; { <-- Здесь !!! }
...
будет T сбрасывать? Оно же накапливается, и при третьей загрузке длина оси X утроится по сравнению с первой, если T не обнулить smile.gif

Теперь про ось Y... Я не добрался, честно говоря, до причины такого поведения Axis.Title.Caption, но одно выяснил совершенно точно: у тебя здесь:
          Chart1.LeftAxis.Title.Caption:='';
Chart1.Repaint;
Chart1.LeftAxis.Title.Caption:=Ch1; { <-- !!! }

в Ch1 хранится неверное значение. То есть, прибавляется B... Проблема, скорее всего, схожая, где-то не присвоил Ch := '';

Кстати, если этот проект писать как положено, используя процедуры/функции/Case, то от почти 2000 строк, что есть сейчас останется в худшем случае 400. Как думаешь, какую программу легче сопровождать? wink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Спасибо, разобрался, заработало smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


У меня еще вопрос.
Как можно поменять масштаб дополнительной оси.
Дополнительную ось я создавал так
Код

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.
Как это сделать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Гость






AlexSCH, во-первых, картинку присоедини сюда (ее невозможно посмотреть, сервер не отвечает), а во-вторых, если даешь код, так давай так, чтобы было понятно, что чему равняется...

YPercent это что такое и чему равно, например?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Вот архив, с программой.
YPercent это из демо TeeChart к делфе, где оси кординат могут перемещатся, с помошью таймера, я таймер отключил, просто переменная осталась.


Прикрепленные файлы
Прикрепленный файл  5.rar ( 22.65 килобайт ) Кол-во скачиваний: 329
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


AlexSCH, а где Unit2 ?

кмх ... Попробуй использовать циклы в программе smile.gif

j:=1;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=2;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=3;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=4;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=5;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=6;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=7;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;
j:=8;
Chart1.Series[0].AddXY(t, strtoint('$'+Mat[j]));
t:=t+1;


Такой код во первых выглядит странно, во вторых читается плохо

Ты можешь написать задание полностью ? Что-то мне подсказвыает, что этот код можно сократить в несколько раз, и обойтись без таких вещей :

t,tt,ttt,tttt,ttttt:integer;
r,zz,zs,zss,zx,uu,uu2,ww,zz1,zx1,zs1,zss1,zz2,xx,xx2,yy,yy2,yy1,
yy12,yyy,yyy2,www,www2,laxis,baxis,qaz,gerc44:real;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Unit 2 добавил.
Файл с информацией в архиве под именем "10"
Согласен, код корявый. Добавление дополнительной оси происходит в самом конце кода вот этой процедурой procedure TForm1.Series1AfterDrawValues(Sender: TObject);
Цитата

ты можешь написать задание полностью

Задача программы отображать графическую информацию. Эта информация хранится в файле, например под именем "10", в поле TChart выводится несколько графиков, изначально они идут в единой системе координат, а требуется, при том же масштабе(расположении) графиков, чтобы было несколько осей Y, с различными масштабами единиц измерения.
В файле copy11 рисунок, там уже есть 2шкала, но я не знаю как поменять ее относительный масштаб


Сообщение отредактировано: AlexSCH -


Эскизы прикрепленных изображений
Прикрепленное изображение

Прикрепленные файлы
Прикрепленный файл  6.rar ( 25.67 килобайт ) Кол-во скачиваний: 351
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Действительно никто не знает как поменять масштаб на второй оси??? или это действительно нереально??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Гость






Да ты покажи, НА ЧТО ты хочешь поменять? Как это выглядеть должно??? Телепаты кончились.

И программу подправь, а то она у тебя через раз дает ошибку обращения к TXT файлу, сколько можно ее перезапускать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Цитата
Да ты покажи, НА ЧТО ты хочешь поменять? Как это выглядеть должно??? Телепаты кончились.

Выглядеть это должно так: первая ось Y остается неизменной, а вторая должна отображать те же цифры что и первая, только разделенные на коэффициент, например 10. То есть, если левая шкала показывает 100, то правая на этом-же уровне далжна показывать 10. Коэффициент необязательно может быть целым числом.
Цитата
И программу подправь, а то она у тебя через раз дает ошибку обращения к TXT файлу, сколько можно ее перезапускать?

Задержку я поставил побольше должно помочь.
Измененный проект прилагается.


Прикрепленные файлы
Прикрепленный файл  7.rar ( 46.23 килобайт ) Кол-во скачиваний: 349
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Новичок
*

Группа: Пользователи
Сообщений: 36
Пол: Мужской

Репутация: -  0  +


Я переделал вид программного окна в графическом редакторе, должно выглядеть вот так как на приклепленном изображении, то есть вторая ось Y представлена в другом масштабе. Как добавленную ось Y перевести в другой масштаб? (код на дополнительную ось Y представлен в пердыдущих постах, проблема в том, что дополнительная ось Y по масштабу полностью соответствует начальной оси Y, а нужно чтобы их масштабы отличались)


Сообщение отредактировано: AlexSCH -


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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. Как разрешить проблему?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #36


Гость






Цитата(Гость @ 30.07.2007 3:49) *


...
В общем, проблема в том, что график строится не в том порядке, в каком я ему добавляю точки, а по возрастанию оси Х...т.е. 1,2,23,51,53... а не 2,51,53,23,1. Как разрешить проблему?


Копать куда-то сюда
Chart2.Series[2].XValues.Order := loNONE;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #37


Бывалый
***

Группа: Пользователи
Сообщений: 155
Пол: Мужской

Репутация: -  0  +


Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. Casino Jobs and Their Roles
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #38





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


А мне вот не очень нравится работать программистом из-за того, что там много не заработаешь. Я предпочитаю зарабатывать деньги играя в онлайн казино Алмаз .Онлайн-казино Almaz — это инновационная платформа, использующая технологию искусственного интеллекта (ИИ), чтобы предложить игрокам больше возможностей для выигрыша, а также предоставить им безопасный и приятный опыт.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.01.2023 18:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name