Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Chartfx   Найти похожие ветки 

 
Igor G ©   (2004-04-21 16:03) [0]

Кто работал с этой фигнёй, если можно, киньте пример работы в run-time или хэлп-у кого есть


 
Axil   (2004-04-21 16:19) [1]

Документация, поставляемая с Delphi, слишком запутанна и тяжела, особенно если вы не пользователь VBX...

Следующий пример устанавливает некоторые значения и пр. для ChartFX:

{Код получает данные из базы данных и рисует их}

begin
 MyTable.active := True; {открываем базу данных}
 MyTable.first;
 MyChart.title[CHART_BOTTOMTIT] := "Заголовок по оси X";
 MyChart.title[CHART_LEFTTIT] := "Заголовок по оси Y";
 MyChart.OpenData[COD_XVALUES] := MakeLong(numOfSeries, numofPoints);
 MyChart.OpenData[COD_VALUES] := MakeLong(numOfSeries, NumofPoints);
 MyChart.ThisSerie := SeriesNum; {начинаем с 0}
 while MyTable.EOF <> True do
 begin
   MyChart.value[i] := MyTable.FieldByName("SOMEFIELD").AsFloat;
   MyChart.Xvalue[i] := MyTable.FieldByName("SOMEOTHERFIELD").AsFloat;
   MyTable.next;
   i := i + 1; {естественно, вам необходимо определить и инициализировать "i"}
 end;
 MyChart.CloseData[COD_Values] := 0;
 MyChart.CloseData[COD_XValues] := 0;
 MyTable.active := False; {закрываем базу данных}
end;

{Обратите внимание на то, что данный код отностится к диаграмме
типа xy scatter. Если вы хотите сменить тип диаграммы ChartFX,
вам не нужно устанавливать значения для COD_XVALUES}



chart1.Opendata[cod_values]:=makelong(no_of_series,no_of_classes);
{установка последовательных значений}
chart1.closedata[cod_values]:=0;



Еще один пример

unit TstChart;

interface

uses = 20

 WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Menus,
 Dialogs, StdCtrls, Buttons, ExtCtrls, Tabs,
 ChartFX, {Похоже, действительно необходимо включить этот модуль
 в список, чтобы иметь доступ к константам, например к COD_VALUES}
 VBXCtrl, Chart2fx;

type

 TF_Chart = 3 D class(TForm)
   SpeedPanel: TPanel;
   ExitBtn: TSpeedButton;
   NB: TNotebook;
   TB: TTabSet;
   Chart1: TChartFX;
   Chart2: TChartFX;
   procedure ExitItemClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);

   procedure TBClick(Sender: TObject);
   procedure FormResize(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
   procedure Build1(Ch: TChartFX);
   procedure Build2(Ch: TChartFX);
 end;

var

 F_Chart: TF_Chart;

implementation

{$R *.DFM}

procedure TF_Chart.ExitItemClick(Sender: TObject);
begin

 Close;
end;

procedure TF_Chart.FormCreate(Sender: TObject);
begin

 TB.Tabs := 3 D NB.Pages;

 NB.PageIndex := 3 D 0;
 Build1(Chart2);
 Build2(Chart2); {добавляем значения для Chart2: length... и т.д.}
end;

procedure TF_Chart.TBClick(Sender: TObject);
begin

 NB.PageIndex := 3 D TB.TabIndex;
end;

procedure TF_Chart.Build1(Ch: TChartFX);
begin

 {Эта процедура изменяет свойства, которые могут устанавливаться
 во время разработки или временя выполнения. В коментариях подробно
 указано чем занимается метод Design}

 with Ch do
 begin

   Adm[CSA_GAP] := 3 D 25.0;

   {Design:   Используйте свойство AdmDlg для изменения координаты Y}

   pType := 3 D BAR or CT_LEGEND;
   {Design: Изменяем свойство ChartType с 1 - line
   на 2 - bar.}

   DecimalsNum[CD_YLEG] := 3 D 0;
   {Design: Изменяем свойство Decimals с 2 до 0}

   Stacked := 3 D CHART_STACKED;
   {Design: Изменяем свойство Stacked с 0 - None на 1 - Normal}

   RightGap := 3 D 20;
   {Design: Тоже}

   OpenData[COD_COLORS] := 3 D 2;

   Color[0] := 3 D clBlack;
   Color[1] := 3 D clYellow;
   CloseData[COD_COLORS] := 3 D 0; {Фу!!}
   {Design: Для изменения цветов 2 серий:
   1)  Убедитесь, что ThisSerie установлен в 0.  Измените
   ThisColor на clBlack.
   2)  Установите ThisSerie в 1.  Измените ThisColor на
   clYellow.}

   Title[CHART_TOPTIT] := 3 D "Статьи и заголовки";
   Title[CHART_LEFTTIT] := 3 D "CCM";
   Title[CHART_BOTTOMTIT] := 3 D "Карты";
   {Design:  щелкните на свойстве TitleDlg и
   установите верхний, левый и нижний заголовки}
 end;
end;

procedure TF_Chart.Build2(Ch: TChartFX);
{Данная процедура устанавливает свойства, которые не могут

(насколько я определил это) быть установлены в режиме разработки}
const

 XAbbrevs: array[0..4] of string[4] = 3 D
 ("Acc", "Bar", "Mas", "Amex", "Din");
 SeriesTitles: array[0..1] of string[8] = 3 D
 ("Статьи", "Заголовки");
 XTitles: array[0..4] of string[20] = 3 D

 ("Access", "Barclaycard", "Mastercard", "American Express",
   "Diners");
 {естественно, вы должны нормально читать из базы данных
 xTitles и значения}
 Values: array[0..1, 0..4] of double = 3 D
 ((50, 60, 70, 80, 90),
   (30, 35, 25, 37, 42));
var

 i, SerieNo: integer;
begin

 with Ch do
 begin

   LegendWidth := 3 D 120;

   {Установка количества серий, количества значений ******************}
   OpenData[COD_INIVALUES] := 3 D MAKELONG(2, 5);

   CloseData[COD_INIVALUES] := 3 D 0;
   {*********************************************************}

   OpenData[COD_VALUES] := 3 D 2;
   {если вы пропускаете приведенное выше утверждение,
   (в котором вы вводите номер SERIES и VALUES), и CloseData ниже,
   назначение значений не создает ошибки, но и не работает! Назначение
   значений Legend и KeyLeg работает без OpenData/CloseData}
   ThisSerie := 3 D 0;
   for i := 3 D 0 to 1 do

     SerLeg[i] := 3 D SeriesTitles[i];
   for i := 3 D 0 to 4 do
     = 20
   begin
     Legend[i] := 3 D XTitles[i];
     KeyLeg[i] := 3 D XAbbrevs[i];
   end;
   SerieNo := 3 D 0;
   for SerieNo := 3 D 0 to 1 do
     = 20
   begin
     ThisSerie := 3 D SerieNo;
     for i := 3 D 0 to 4 do
       Value[i] := 3 D Values[SerieNo, i];
   end;

   CloseData[COD_VALUES] := 3 D 0;
 end;
end;

procedure TF_Chart.FormResize(Sender: TObject);
var

 w, h: longint;
begin

 w := 3 D NB.Width;
 H := 3 D NB.Height;
 {при необходимости увеличиваем/уменьшаем размер диаграммы}
 Chart1.Width := 3 D W - 18;
 Chart1.Height := 3 D H - 12;
 Chart2.Width := 3 D W - 18;
 Chart2.Height := 3 D H - 12;

 {перемещаем кнопку выхода в правый угол}
 ExitBtn.Left := 3 D SpeedPanel.Width - 32;
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
8-1076511716
snake7
2004-02-11 18:01
2004.04.11
Ресурс изображений


4-1075460477
comwad
2004-01-30 14:01
2004.04.11
Как найти HWND у TSpeedButton в чужом приложении?


4-1075017686
Elast
2004-01-25 11:01
2004.04.11
Perform


1-1082944483
zsv
2004-04-26 05:54
2004.04.11
Запуск *.bat


8-1076485955
Layner
2004-02-11 10:52
2004.04.11
Как очистить Image?