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

Вниз

Как окрасить TChartSeries?   Найти похожие ветки 

 
Углук ©   (2007-03-30 20:13) [0]

В Runtime добавляю к TChartSeries значения:
Такой вариант работает:


       fChannelA.AddXY((i div 2)-1,-DBMean);
        fChannelA.ValueColor[(i div 2)-1]:=ClWhite;


Но затем мне понадобилось добавлять не все  подряд значения:


if (-DbMean>-DbMeanext) then begin
       inc(n);
       fChannelA.AddXY((i div 2)-1,-DBMean);
        fChannelA.ValueColor[n]:=ClWhite;
      end;

Такой вариант не работает, т.е. линии значений
окрашиваются в произвольные цвета ( такой же эффект возникает, если ничeго не присваивать          fChannelA.ValueColor
Как правильно закрасить все значения в белый цвет?


 
Kolan ©   (2007-03-31 22:39) [1]

> Как правильно закрасить все значения в белый цвет?

А какого типа серия?


 
Kolan ©   (2007-03-31 22:40) [2]

Так а чего нужно добится в результате? Разноцветных серий?


 
Kolan ©   (2007-03-31 22:45) [3]

А название не увидел. Я их не когда не перекрашивал&#133
но  думаю
FSerie.SeriesColor := Color;
прокатит :)


 
Углук ©   (2007-03-31 22:49) [4]

Серия типа простого двумерного графика


 
Kolan ©   (2007-03-31 22:50) [5]

> простого двумерного графика

Нет такого, есть TLineSerie, TFastLineSerie, TBarSerie и т.д.

Так [3]не помогло?


 
Углук ©   (2007-04-02 14:13) [6]

Там есть TChartSeries


 
Углук ©   (2007-04-02 14:18) [7]

К сожалению, [3] не помогло


 
Kolan ©   (2007-04-02 15:18) [8]

> К сожалению, [3] не помогло

покажи код как пытался&#133


 
Углук ©   (2007-04-02 19:07) [9]

Вот код:
 
for I := 1 to 8191 do
   begin
   n:=0;
    if (i mod 2=0 )then
    begin
      if Abs(F[I-1])>0 then

      DBmean:=-20*log10(Abs(F[I-1])/StrToFloatDef(OscForm.edtRefVolt.Text,1) )
      DBmeanext:=-20*log10(Abs(F[I])/StrToFloatDef(OscForm.edtRefVolt.Text,1) )

  if -DBMean>-DBMeanext then
     begin
      inc(n);
      fChannelA.SeriesColor:=clWhite;
      fChannelA.AddXY(n,-DBMean);
    end;
end;


 
Углук ©   (2007-04-02 19:09) [10]

Если писАл
fChannelA.SeriesColor:=clWhite
перед циклом, то было то же самое (вернее ничего не было:( )


 
Kolan ©   (2007-04-02 19:40) [11]

Создай пустой прокт, создай 1 серию, на кнопку(например) повесь
Serie1.SeriesColor:=clWhite

Заполни серию числами (случайными).

Лично у меня работает(проверил). Так что скорре всего дело в другом коде&#133


 
Kolan ©   (2007-04-02 19:43) [12]

> вернее ничего не было:(

Те цвет не меняется?


 
Углук ©   (2007-04-02 22:47) [13]

Да. А если делать как  в [1] , тогда меняется


 
Kolan ©   (2007-04-03 07:41) [14]

> Да. А если делать как  в [1] , тогда меняется

Наверно не в [1], а в [11].
Итого что-то ты в другом месте напортачил:
1. Может ты вообще не у той серии цвет меняешь.
2. Пост [6] говорит о том что ты чегото не понимаешь. TChartSeries — это общий предок для серий. На нем рисовать нельзя.
Создавай TLineSeries.


 
Углук ©   (2007-04-03 18:25) [15]


> TChartSeries — это общий предок для серий. На нем рисовать
> нельзя

Чего-то не понимаем мы оба :) потому что программа весьма успешно рисует на TChartSeries.

Теперь.
Пишу

fChannelA: TLineSeries;

Error: Undeclared identifier "TLineSeries"


 
Kolan ©   (2007-04-03 18:34) [16]

> Error: Undeclared identifier "TLineSeries"

Какие моду ли подключил? Какой версией Delphi пользуешься?


> успешно рисует на TChartSeries.

Покажи как объявлено и как создается?


 
Углук ©   (2007-04-03 19:01) [17]

Модули:
sysutils,math,graphics,dialogs,windows,classes,
TeeProcs, TeEngine, Chart,JPEG

Объъявлено в секции public класса TOsc
FChart          : TChart; // Chart  
FChannelA       : TChartSeries; //
FChannelB       : TChartSeries; //


 
Углук ©   (2007-04-03 19:03) [18]

То есть полем этого класса является Chart, который потом создается в designtime  и в конструкторе Create полю fChart, и серии которого присваиваются fChannelA и fChannelB


 
Kolan ©   (2007-04-03 19:11) [19]

> FChannelA       : TChartSeries; //
> FChannelB       : TChartSeries; //

А это как создается?


 
Углук ©   (2007-04-03 20:08) [20]


constructor TOscilloscope. create(Chart          : TChart;
                           ChannelA       : TChartSeries; êàíàëà À îñöèëëîãðàôà
                           ChannelB       : TChartSeries;....

begin
...

   FChannelA:=ChannelA;
   FChannelB:=ChannelB;
...
end;


 
Kolan ©   (2007-04-03 20:12) [21]

Так. Тут показана что они передаются. Те они уже созданы ВНЕ create.
Так кто же их создает? В дизан тайме они создаются? Тогда это НЕ TChartSeries так как в дизанере нет таких.


 
Kolan ©   (2007-04-03 20:14) [22]

> Error: Undeclared identifier "TLineSeries"

Series где?


 
Углук ©   (2007-04-03 20:18) [23]

Нашел:)
В объявлении формы
 ChannelB: TLineSeries;
 ChannelA: TLineSeries;


 
Углук ©   (2007-04-03 20:19) [24]

Я ацки туп :)


 
Kolan ©   (2007-04-03 20:21) [25]

> ChannelB: TLineSeries;
> ChannelA: TLineSeries;


Ну вот с этим разобрались.

 if —DBMean>-DBMeanext then
    begin
     inc(n);
     fChannelA.SeriesColor:=clWhite;
     fChannelA.AddXY(n,-DBMean);
   end;


А точно на fChannelA.SeriesColor:=clWhite; попадает? Проверял отладчиком?


 
Углук ©   (2007-04-03 20:23) [26]

Да, попадает, проверил.


 
Kolan ©   (2007-04-03 20:23) [27]

Хочешь пришло проект я отлажу. Только у меня нет никаких сторонних компонентов и ставить их я не хочу.  :)


 
Kolan ©   (2007-04-03 20:24) [28]

> пришло

пришли


 
Углук ©   (2007-04-03 20:25) [29]

К сожалению, там до черта сторонних компонент :) Так что скорее всего я выкину чарт и буду рисовать на канвасе. Спасибо за труд!


 
Kolan ©   (2007-04-03 20:25) [30]

> Да, попадает, проверил.

Может быть ты еще гдето цвет меняешь? Может fChannelA невидна, а видна только ChannelB — вариантов масса. И на 99.999% виноват ты а не чарт.


 
Углук ©   (2007-04-03 20:28) [31]


> Может быть ты еще гдето цвет меняешь

Уже в момент прихода отладчиком на строку

 fChannelA.SeriesColor:=clWhite;


Поле   fChannelA.SeriesColor содержит $FFFF, так что это скорее всего тот самый  0,001%


 
Kolan ©   (2007-04-03 20:32) [32]

> Да, попадает, проверил.

И цвет не меняется? А попробуй другое свойство.
Обяви
FChannelA       : TChartSeries; //
FChannelB       : TChartSeries; //
TLineSeries (незабудь добавить Series в uses)

И включай свойство :
Stairs
Например.


 
Kolan ©   (2007-04-03 20:37) [33]

> fChannelA.SeriesColor содержит $FFFF

А если окно задвинуть за край экрана и назад вернуть(перерисовать короче) ?


 
Углук ©   (2007-04-03 20:41) [34]

Ура!
Сработало       fChannelA.AddXY((i div 2)-1,-DBMean,"",clWhite);

Спасибо!


 
Kolan ©   (2007-04-04 21:34) [35]

>  fChannelA.AddXY((i div 2)-1,-DBMean,"",clWhite);

Так чтож теперь если цвет надо поменять будешь все заново рисоват? — :(


 
Углук ©   (2007-04-13 18:26) [36]

Задача не требует смены цвета


 
Kolan ©   (2007-04-13 21:55) [37]

> Задача не требует смены цвета


> Как окрасить TChartSeries?

А чего же она требует???


 
_Аноним   (2007-04-16 18:45) [38]

Тоже столкнулся приблизительно с этим же геморроем.
Ваш вариант не прокатил, но тем не менее проблема после решения ветки разрешилась.

> Kolan ©  

Спасибо :-)


 
Kolan ©   (2007-04-16 18:49) [39]

> Спасибо :-)

Да всегда пожалуйста&#133


 
ewpsg   (2007-05-19 10:10) [40]

<a href=  ></a>   [url=][/url]



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

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

Наверх




Память: 0.57 MB
Время: 0.02 c
11-1163403161
Kirill
2006-11-13 10:32
2007.07.29
Недоступный сервер MsSQL и KolEdb


15-1183110959
IMHO
2007-06-29 13:55
2007.07.29
VB.NET to Delphi


15-1183125482
Piter
2007-06-29 17:58
2007.07.29
Регулярные выражения


2-1183614748
petvv
2007-07-05 09:52
2007.07.29
Paradox + D7 = Грабли


1-1179832264
pasha_golub
2007-05-22 15:11
2007.07.29
Получить значение заданных полей через RTTI