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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компонент TChart 
:(
    Опции темы
Paradox
Дата 21.10.2003, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Такой вопрос - ктонибудь всерьез с ним сталкивался (с TChart) ?
Мне поможет все, кроме описаний, которые есть во всех стандартных книжках по дельфям.
Точнее:
надо уметь задавать свойства компонента не через мастер настройки серий, а програмно
у меня есть Query производящий выборку некоторого набора данных из б.д.
Query формируется тоже в рантайме
На форме имеется грид и чарт
необходимо по желанию пользователя отображать данные либо в гриде, либо на графике чарта
Проблема в том, что через мастер настройки серий настроить координаты x и y графика невозможно, т.к. в дизайнтайме квери пуст


--------------------
---
PM MAIL WWW   Вверх
Paradox
Дата 21.10.2003, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Да забыл: датасет у Query формируется и привязывается к нему в рантайме


--------------------
---
PM MAIL WWW   Вверх
gray_k
Дата 21.10.2003, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

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



Делал я такое, давно правда. Вот пример функции, которая заполняет Chart из компонента Table
Код
procedure TMainFrm.ChartFill(Chart:TChart; Table:TTable; TipT:string);
var Num_azs, i:integer;
   Color:array [0..9] of TColor;
begin
       for i:=0 to 9 do begin
           Chart.SeriesList.Series[i].Active:= false;
           Chart.SeriesList.Series[i].Clear;
       end;

       i:=0;
       Color[0]:=clRed;
       Color[1]:=clBlack;
       Color[2]:=clBlue;
       Color[3]:=clYellow;
       Color[4]:=clFuchsia;
       Color[5]:=clAqua;
       Color[6]:=clGreen;
       Color[7]:=clLime;
       Color[8]:=clPurple;
       Color[9]:=clMaroon;

       Table.First;
       Num_azs := Table.FieldByName('Afs_id').AsInteger;

       while not Table.Eof do begin
           if Num_azs = Table.FieldByName('Afs_id').AsInteger then begin
               Chart.SeriesList.Series[i].AddXY(Table.FieldByName('Data').AsDateTime, Table.FieldByName(TipT).AsInteger, '', Color[i]);
               Num_azs:=Table.FieldByName('Afs_id').AsInteger;
               Table.Next;
           end
           else begin
               Chart.SeriesList.Series[i].XValues.DateTime := true;
               Chart.SeriesList.Series[i].Title:='АЗС №'+IntToStr(Num_Azs);
               Chart.SeriesList.Series[i].Active:=true;
               Num_azs:=Table.FieldByName('Afs_id').AsInteger;
               i:=i+1;
           end;
           if i = 10 then begin
               i:=9;
               break;
           end;
       end;
       Chart.SeriesList.Series[i].XValues.DateTime := true;
       Chart.SeriesList.Series[i].Title:='АЗС №'+IntToStr(Num_Azs);
       Chart.SeriesList.Series[i].Active:=true;
end;

Надеюсь поможет


--------------------
С уважением.
Gray.
PM MAIL   Вверх
Paradox
Дата 21.10.2003, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я так понял что у него всего два измерения, и при этом одно должно быть числовым (или датным).
Короче у меня есть таблица из трех колонок (две строковые и числовая) и их надо отбразить на графике (например, по осям названия из строчных стобцов, а на их пересечении (если такое есть в таблице) - число
Можно ли как-нибудь такое сделать ?


--------------------
---
PM MAIL WWW   Вверх
gray_k
Дата 21.10.2003, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

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



Никогда не пробовал. Скорее всего именно с этим компонентом такого сделать нельзя. Есть компонент TeeChart. Я с ним не работал, но видел. Там возможностей на порядок больше.


--------------------
С уважением.
Gray.
PM MAIL   Вверх
Paradox
Дата 23.10.2003, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Че то вот такой код не работает
Код
while not GridDS.DataSet.EOF do
     begin
      Chart1.SeriesList[0].AddY(GridDS.DataSet.Fields[1].AsFloat,
      GridDS.DataSet.Fields[0].AsString,clTeeColor);
      GridDS.DataSet.Next;
     end;
     Chart1.SeriesList[0].Active:=true;
    end;

По Y заполняется нормально - тем чем надо из датасета
А вот по Х ставит в качестве меток на оси 0,1,2 и т.д., хотя GridDS.DataSet.Fields[0].AsString содержит совсем другой текст
confused.gif??


--------------------
---
PM MAIL WWW   Вверх
Paradox
Дата 23.10.2003, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Т.е. вопрос такой: как програмно присвоить метки по оси иксов


--------------------
---
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

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

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

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

FAQ раздела лежит здесь!


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

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


 




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


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

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