Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TChart дата и время 
V
    Опции темы
CompWorm
Дата 21.7.2007, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 2
Всего: 31



приветствую!
вопрос простой, как всегда. 
на ось Х я вывожу при помощи 
... .addXY (TIME, MyVal, MyColor); 
время. формат его я задаю как
'H:mm:ss'
теперь я хочу чтоб одновременно выводилась и дата. то есть так:
формат - 'dd/mm/yy H:mm:ss'

... .addXY (DATE+TIME, MyVal, MyColor); 

выходит фигня какая-то. помогите плиз!


--------------------
PM MAIL   Вверх
murod
Дата 21.7.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 17.9.2005
Где: Uzbekistan/Tashke nt

Репутация: нет
Всего: 4



время и дату надо переводить в строку соответственно timetoStr(),datetoStr().

Код

addXY (datetoStr(now)+' '+timetoStr(now), MyVal, MyColor); 

функция now()   возврашает текущую время и дату.
--------------------
Люди всего мира берегите природу!  
PM MAIL ICQ   Вверх
aktuba
Дата 21.7.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



Цитата

время и дату надо переводить в строку соответственно timetoStr(),datetoStr().


Можно использовать DateTimeToStr, только подключи DateUtils...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
CompWorm
Дата 23.7.2007, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 2
Всего: 31



большое спасибо за ответ. 

но все же, синтаксис 

series.AddXY(X: Double,Y: Double, Label: String, Color: TColor);

функция AddXY строки, как видим, не хочет подписывать.
так же не ясно, что делать, если я хочу вывести часы работы... , минуты, секунды. 
если я все верно понимаю, то формат должен быть таким

'#:mm:ss'

такую строку можно получить так:

inttostr(MyH)+FormatDatetime(':mm:ss',now);

но как пояснить Чарту, что это мой Икс, который должен быть даблом, я не врубаюсь.

например, если таким образом попытаться вывести точку на оси икс 
43:32:12 (то есть отработано 43 часа, 32 минуты 12 секунд нынешнего часа),
то опять же получаем ошибку несовпадения типов данных.
то есть, вывести время строкой не получается. 
я установил в закладке Chart - Axis - Labels стиль текстовый. опять не помогло. 
в Series - Generel убрал галочку Date Time, но функция все равно требует значение типа дабл. 

Это сообщение отредактировал(а) CompWorm - 23.7.2007, 20:48


--------------------
PM MAIL   Вверх
CompWorm
Дата 24.7.2007, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: 2
Всего: 31



хы хы  smile 
придумал такое решение вышеописанной проблемы:

Код

 
...

MyH:=MyH+1;  //как-то высчитали число отработанных с запуска графика часов...

...

series1.Add(MyVal, FloattoStr(MyH)+', '+FormatDatetime('nn:ss',now));
Chart1.AddSeries(series1);



а в качестве формата ничего не меняю, выставляю стиль - текстовый для нижней оси
и получаю ось времени, в подписи которой что-то типа
 '43 ,32:12' - отработанные часы и текущее время после запятой.

проблема решена  smile 

PS так как вы все же время в виде строк передаете в функцию, 
Код

series.addXY (datetoStr(now)+' '+timetoStr(now), MyVal, MyColor); 

которая требует значения типа Дабл?
по ходу попутали с
Код

series.Add(Y: Double,X: String);


Это сообщение отредактировал(а) CompWorm - 24.7.2007, 05:02


--------------------
PM MAIL   Вверх
aktuba
Дата 24.7.2007, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 7
Всего: 38



В series можно настроить тип отображения и там есть тип даты/времени. После этого просто передавай дату/время как есть и все будет отображаться нормально:
Код

series.addXY (Now, MyVal, MyColor); 



--------------------
user posted image
PM MAIL WWW Skype   Вверх
pethead
Дата 4.6.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 13.11.2007

Репутация: нет
Всего: нет



а можно ли сделать так чтобы 
1. выводить данные по времни в масштабе часов, дней, недель, месяцев? т.е. посмотрел по часам, потом о дням и т.д.
как это сделать в tchart? данные берутся из накопительного массива с шагом 10сек.

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.