Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


 
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.


 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.034 c
4-1075545213
Шишкин Илья
2004-01-31 13:33
2004.05.09
Работа с иконками


1-1082571459
Lena19
2004-04-21 22:17
2004.05.09
Scrollbox и колесо мыши


6-1079615379
palan
2004-03-18 16:09
2004.05.09
Посылка/прием сложных данных c помощью сокетов


3-1081845149
Dynamit
2004-04-13 12:32
2004.05.09
Проблема загрузки данных из файла в компонент ClientDataSet


3-1081500086
Соловьев
2004-04-09 12:41
2004.05.09
EhLib - dgTitlte = false - Access violation





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский