Форум: "Основная";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
ВнизКак окрасить 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]А название не увидел. Я их не когда не перекрашивал…
но думаю
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] не помогло
покажи код как пытался…
← →
Углук © (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
Заполни серию числами (случайными).
Лично у меня работает(проверил). Так что скорре всего дело в другом коде…
← →
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]> Спасибо :-)
Да всегда пожалуйста…
← →
ewpsg (2007-05-19 10:10) [40]<a href= ></a> [url=][/url]
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.063 c