C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
даты и Chart-ы
bitanga
Отправлено: 07.08.2003, 13:51


Ученик-кочегар

Группа: Участник
Сообщений: 25



Есть некая табличка из двух колонок: дата и курс. Нужно нарисовать в Чарте график.
Рисую циклом повторяя:
Series2->AddXY(var1,var2,"",clGreen);
А проблема вот в чем: по оси Y всё ок. А вот как сделать чтобы на шкале Х указывалась дата?

Declaration

function AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor) : Longint;

А мне нужно не Double, а DateTime для второго параметра. Как решить такую проблему?
Asher
Отправлено: 07.08.2003, 14:18


Мастер участка

Группа: Модератор
Сообщений: 550



а ты почитай зачем там AXLabel, может и пригодится
Георгий
Отправлено: 07.08.2003, 15:55


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Можно чуть чуть иначе:
CODE
this->Chart1->BottomAxis->DateTimeFormat="hh:mm:ss";
this->Series1->XValues->DateTime=true;
...
OneTermoGraph->Series1->AddXY(tf.Data.Time,t,"",clTeeColor);
bitanga
Отправлено: 08.08.2003, 00:53


Ученик-кочегар

Группа: Участник
Сообщений: 25



А можно уточнить что за переменная tf.Data.Time ?
bitanga
Отправлено: 08.08.2003, 01:42


Ученик-кочегар

Группа: Участник
Сообщений: 25



QUOTE (Asher @ 07/08/2003, 15:20)
а ты почитай зачем там AXLabel, может и пригодится

это?
function AddY(Const AYValue: Double; Const AXLabel: String; AColor: TColor): Longint;

Боюсь что не очень удобно. в моей таблице дни не равномерно — некоторые пропушены. Хотя и за это спасибо — если ничего лучше не найду и это сгодится smile.gif

Отредактировано bitanga — 08/08/2003, 02:53
Георгий
Отправлено: 08.08.2003, 02:06


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Ой — это кусок поля одного моего объекта...
Но это не принципиально — тип этого поля TDateTime — т.е. подставляй любое TDateTime — и будет тебе график курса от времени (у меня была температура от времени)
Кстати — TDateTime хранит время в виде числа типа double (число дней прошедших с 01.01.1970?).
bitanga
Отправлено: 08.08.2003, 23:56


Ученик-кочегар

Группа: Участник
Сообщений: 25



А как изменять текст легенды?
у меня на чарте два графика, в легенде должно быть две строчки. Как програмно их задать?
Георгий
Отправлено: 09.08.2003, 22:16


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Задавай Series->Title потом Series->ShowInLegend и она, в зависимости от настроек TChart, должна будет появиться, причём, что именно появится определяется тоже настройками TChart.
Раз ты спросил о легенде, то у меня к тебе встречный вопрос — как узнать на какой строке легенды щёлкнул мышкой пользователь?

Вернуться в Вопросы программирования в C++Builder