Чтение онлайн

ЖАНРЫ

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

{Design: Изменяем свойство ChartType с 1 - lineна 2 - bar.}

DecimalsNum[CD_YLEG] := 0;

{Design: Изменяем свойство Decimals с 2 до 0}

Stacked := CHART_STACKED;

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

RightGap := 20;

{Design: Тоже}

OpenData[COD_COLORS] := 2;

Color[0] := clBlack;

Color[1] := clYellow;

CloseData[COD_COLORS] := 0;

{Фу!!}

{Design:
Для изменения цветов 2 серий:1) Убедитесь, что ThisSerie установлен в 0. ИзменитеThisColor на clBlack.2) Установите ThisSerie в 1. Измените ThisColor наclYellow.}

Title[CHART_TOPTIT] := 'Статьи и заголовки';

Title[CHART_LEFTTIT] := 'CCM';

Title[CHART_BOTTOMTIT] := 'Карты';

{Design: щелкните на свойстве TitleDlg и установите верхний, левый и нижний заголовки}

 end;

end;

Procedure TF_Chart.Build2(Ch : TChartFX);

 {Данная процедура устанавливает свойства, которые не могут (насколько я определил это) быть установлены в режиме разработки}

const

 XAbbrevs : array[0..4] of string[4] =('Acc', 'Bar', 'Mas', 'Amex', 'Din');

 SeriesTitles : array[0..1] of string[8] =('Статьи', 'Заголовки');

 XTitles : array[0..4] of string[20] = ('Access', 'Barclaycard', 'Mastercard', 'American Express', 'Diners');

 {естественно, вы должны нормально читать из базы данных xTitles и значения}

 Values : array[0..1, 0..4] of double =((50, 60, 70, 80, 90),(30, 35, 25, 37, 42));

var i, SerieNo : integer;

begin

 with Ch do begin

LegendWidth := 120;

{Установка количества серий, количества значений ******************}

OpenData[COD_INIVALUES] := MAKELONG(2, 5);

CloseData[COD_INIVALUES] := 0;

{*********************************************************}

OpenData[COD_VALUES] := 2;

{если вы пропускаете приведенное выше утверждение, (в котором вы вводите номер SERIES и VALUES), и CloseData ниже, назначение значений не создает ошибки, но и не работает! Назначение значений Legend и KeyLeg работает без OpenData/CloseData}

ThisSerie := 0;

for i := 0 to 1 do SerLeg[i] := SeriesTitles[i];

for i := 0 to 4 do= begin

Legend[i] := XTitles[i];

KeyLeg[i] := XAbbrevs[i];

end;

SerieNo := 0;

for SerieNo := 0 to 1 do begin

ThisSerie := SerieNo;

for i := 0 to 4 do Value[i] := Values[SerieNo, i];

end;

CloseData[COD_VALUES] := 0;

 end;

end;

procedure TF_Chart.FormResize(Sender: TObject);

var w, h : longint;

begin

 w := NB.Width;

 H := NB.Height;

 {при
необходимости увеличиваем/уменьшаем размер диаграммы}

 Chart1.Width := W – 18;

 Chart1.Height := H – 12;

 Chart2.Width := W – 18;

 Chart2.Height := H – 12;

 {перемещаем кнопку выхода в правый угол}

 ExitBtn.Left := SpeedPanel.Width – 32;

end;

end.
 

CHARTFX – минимум максимум

Delphi 2 

Так можно сделать с ChartFX в Delphi 2…. Я думаю то же самое будет и в D1…

cfxStockTrends.Adm[CSA_MIN] := X; //устанавливаем минимум по оси Y

cfxStockTrends.Adm[CSA_MAX] := Y; //Устанавливаем максимум по оси Y
 

Пример CHARTFX

Delphi 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;

Поделиться с друзьями: