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

> ВНИМАНИЕ!

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

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

> Работа с осями в Tchart
сообщение
Сообщение #1


Новичок
*

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

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


Численные значения по осям привязаны строго к графику, который этот компонент отображает. Размерность чисел по осям не соответсвует реальным параметрам. То есть, отображается в 1 компоненте TChart 8 графиков, после построения все они находятся в определенных переделах по значениям, в одной системе координат. Но каждый из графиков несет свою информацию, причем 1 график это, например, Вольты, второй - милиАмперы, возможно ли поменять шкалу по оси ординат в компоненте TChart, не меняя при этом изображение графиков? То есть поменять абстрактыне числа после построения на реальные вольты или амперы и т.д.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ну, например, вот так:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, OleCtnrs, TeEngine, Series, ExtCtrls, TeeProcs,
Chart;

type
TForm1 = class(TForm)
Chart1: TChart;

Button1: TButton;
LineSeries1: TLineSeries;
PointSeries1: TPointSeries;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries;
ValueIndex: Integer; var LabelText: String);
private
{ Private declarations }
public
{ Public declarations }
DefaultLabels: Boolean;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
defaultLabels := not DefaultLabels;
Chart1.Repaint;
end;

procedure TForm1.FormCreate(Sender: TObject);
var t: LongInt;
begin
DefaultLabels:=True;

LineSeries1.Clear;
PointSeries1.Clear;
for t:=1 to 20 do
Begin
LineSeries1.AddXY( Date+t, 200+Random(700),'',clTeeColor); { <-- some random points }
PointSeries1.AddXY( Date+t, 200+Random(700),'',clTeeColor);
end;
end;

procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
if not defaultlabels then

{ А вот из-за чего, собственно, это и делалось: }
if sender = chart1.LeftAxis then begin
labeltext := floattostr(strtofloat(LabelText) / 1000);
end;
end;

end.


Обрати внимание, я не использовал OnGetNextAxisLabel, а использовал OnGetAxisLabel... wink.gif

В списке Uses могут быть лишние модули, не пугайся, я просто добавлял этот код в другой проект...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
AlexSCH   Работа с осями в Tchart   16.08.2006 15:36
klem4   ИМХО не стоит в одной системе координат размесщать…   17.08.2006 0:19
AlexSCH   хорошо, а можно ли вообще менять размерность по ос…   18.08.2006 14:33
volvo   AlexSCH, в дистрибутиве Дельфи (в 6-ой версии, по …   18.08.2006 17:42
klem4   Chart1.BottomAxis.Minimum := 0; Chart1.BottomAxi…   18.08.2006 17:46
AlexSCH   эти команды просто меняют масштаб и шаг, и все (…   18.08.2006 19:11
volvo   Ну, например, вот так: unit Unit1; interface use…   18.08.2006 20:00
AlexSCH   2Volvo Попробовал твой вариант, не заработало, ско…   18.08.2006 21:29
volvo   Присоединяю полностью проект (жми на кнопку и смот…   18.08.2006 21:43
AlexSCH   Получается что эта процедура выполняется постоянно…   18.08.2006 21:54
volvo   [b]OnGetAxisLabel Event Declaration property OnGe…   18.08.2006 22:04
AlexSCH   Вообще чудеса....... :blink: В своем проекту не п…   18.08.2006 22:10
volvo   Нет... :) Так не пойдет... OnGetAxisLabel - событ…   18.08.2006 22:35
AlexSCH   вроде для второго чарта написал отдельную обработк…   18.08.2006 22:56
volvo   Угу... Написать-то ты написал, только вероятно ВРУ…   18.08.2006 23:19
AlexSCH   Огромное тебе спасибо Volvo, заработало так как на…   18.08.2006 23:35
volvo   Удалить разделитель тысяч, и потом работать со стр…   18.08.2006 23:54
AlexSCH   Еще раз спасибо огромное за помощь.   19.08.2006 16:06
AlexSCH   Еще вопрос, как присвоить содержимое переменной ти…   19.08.2006 18:44
volvo   Chart1.BottomAxis.Title.Caption := gerc;   19.08.2006 18:46
AlexSCH   В ходе выполнения программы я даю названия осям, п…   19.08.2006 19:58
volvo   Ну, это смотря как ты "повторно загружаешь фа…   19.08.2006 20:10
AlexSCH   Думал, думал как же это корректно выложить...... п…   19.08.2006 20:23
volvo   По поводу ось Х почему-то увеличивается в 2 раза.…   19.08.2006 21:13
AlexSCH   Спасибо, разобрался, заработало :)   19.08.2006 22:25
AlexSCH   У меня еще вопрос. Как можно поменять масштаб допо…   28.08.2006 19:01
volvo   AlexSCH, во-первых, картинку присоедини сюда (ее н…   28.08.2006 22:22
AlexSCH   Вот архив, с программой. YPercent это из демо TeeC…   29.08.2006 15:21
klem4   AlexSCH, а где Unit2 ? кмх ... Попробуй использов…   29.08.2006 19:56
AlexSCH   Unit 2 добавил. Файл с информацией в архиве под им…   29.08.2006 20:05
AlexSCH   Действительно никто не знает как поменять масштаб …   30.08.2006 21:54
volvo   Да ты покажи, НА ЧТО ты хочешь поменять? Как это в…   30.08.2006 22:09
AlexSCH   Выглядеть это должно так: первая ось Y остается н…   31.08.2006 14:15
AlexSCH   Я переделал вид программного окна в графическом ре…   26.09.2006 16:26
Гость   Помогите пожалуйста с моей проблемой... кусок кода…   30.07.2007 3:49
Гость   ... В общем, проблема в том, что график строится…   4.10.2019 20:30
nishaknapp   Why not settling on games that is fun and at the s…   16.01.2023 6:59
lexusflex   А мне вот не очень нравится работать программистом…   24.01.2023 15:54
nehega   Круто. В интернете сейчас можно найти полезные воз…   2.02.2023 14:54
jumbleruas   Я зарабатываю деньги на том, что играю в казино на…   8.02.2023 19:05


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

 





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