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

> ВНИМАНИЕ!

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

> Работа с осями в Tchart
AlexSCH
сообщение 16.08.2006 11:36
Сообщение #1


Новичок
*

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

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


Численные значения по осям привязаны строго к графику, который этот компонент отображает. Размерность чисел по осям не соответсвует реальным параметрам. То есть, отображается в 1 компоненте TChart 8 графиков, после построения все они находятся в определенных переделах по значениям, в одной системе координат. Но каждый из графиков несет свою информацию, причем 1 график это, например, Вольты, второй - милиАмперы, возможно ли поменять шкалу по оси ординат в компоненте TChart, не меняя при этом изображение графиков? То есть поменять абстрактыне числа после построения на реальные вольты или амперы и т.д.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 18.08.2006 16:00
Сообщение #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 11:36
klem4   ИМХО не стоит в одной системе координат размесщать...   16.08.2006 20:19
AlexSCH   хорошо, а можно ли вообще менять размерность по ос...   18.08.2006 10:33
volvo   AlexSCH, в дистрибутиве Дельфи (в 6-ой версии, по ...   18.08.2006 13:42
klem4   Chart1.BottomAxis.Minimum := 0; Chart1.BottomAxi...   18.08.2006 13:46
AlexSCH   эти команды просто меняют масштаб и шаг, и все (...   18.08.2006 15:11
volvo   Ну, например, вот так: unit Unit1; interface use...   18.08.2006 16:00
AlexSCH   2Volvo Попробовал твой вариант, не заработало, ско...   18.08.2006 17:29
volvo   Присоединяю полностью проект (жми на кнопку и смот...   18.08.2006 17:43
AlexSCH   Получается что эта процедура выполняется постоянно...   18.08.2006 17:54
volvo   [b]OnGetAxisLabel Event Declaration property OnGe...   18.08.2006 18:04
AlexSCH   Вообще чудеса....... :blink: В своем проекту не п...   18.08.2006 18:10
volvo   Нет... :) Так не пойдет... OnGetAxisLabel - событ...   18.08.2006 18:35
AlexSCH   вроде для второго чарта написал отдельную обработк...   18.08.2006 18:56
volvo   Угу... Написать-то ты написал, только вероятно ВРУ...   18.08.2006 19:19
AlexSCH   Огромное тебе спасибо Volvo, заработало так как на...   18.08.2006 19:35
volvo   Удалить разделитель тысяч, и потом работать со стр...   18.08.2006 19:54
AlexSCH   Еще раз спасибо огромное за помощь.   19.08.2006 12:06
AlexSCH   Еще вопрос, как присвоить содержимое переменной ти...   19.08.2006 14:44
volvo   Chart1.BottomAxis.Title.Caption := gerc;   19.08.2006 14:46
AlexSCH   В ходе выполнения программы я даю названия осям, п...   19.08.2006 15:58
volvo   Ну, это смотря как ты "повторно загружаешь фа...   19.08.2006 16:10
AlexSCH   Думал, думал как же это корректно выложить...... п...   19.08.2006 16:23
volvo   По поводу ось Х почему-то увеличивается в 2 раза....   19.08.2006 17:13
AlexSCH   Спасибо, разобрался, заработало :)   19.08.2006 18:25
AlexSCH   У меня еще вопрос. Как можно поменять масштаб допо...   28.08.2006 15:01
volvo   AlexSCH, во-первых, картинку присоедини сюда (ее н...   28.08.2006 18:22
AlexSCH   Вот архив, с программой. YPercent это из демо TeeC...   29.08.2006 11:21
klem4   AlexSCH, а где Unit2 ? кмх ... Попробуй использов...   29.08.2006 15:56
AlexSCH   Unit 2 добавил. Файл с информацией в архиве под им...   29.08.2006 16:05
AlexSCH   Действительно никто не знает как поменять масштаб ...   30.08.2006 17:54
volvo   Да ты покажи, НА ЧТО ты хочешь поменять? Как это в...   30.08.2006 18:09
AlexSCH   Выглядеть это должно так: первая ось Y остается н...   31.08.2006 10:15
AlexSCH   Я переделал вид программного окна в графическом ре...   26.09.2006 12:26
Гость   Помогите пожалуйста с моей проблемой... кусок кода...   29.07.2007 23:49


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

 



- Текстовая версия 13.07.2025 9:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"