Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите найти ошибку в небольшой функции! [D7, XP]


Страницы:   1 2

cvg ©   (2008-04-09 11:31:00) 

Пару месяцев назад мне на этом же форуме кто-то посоветовал текст процедуры для выбора нужной процедуры рисования строки из массива Chart1 по имени. Я ее намного доработал -- для того чтобы была возможность вызывать и процедуру SeriesAddNullXY. При попытке компиляции курсор встает после оператора "then", и сообщение об ошибке звучит так: "Operator not applicable to this operand type". С чего бы это "not applicable"-то? Вот текст процедуры:

procedure SeriesNameAddXY(AChart:TChart;const SeriesName:string;X,Y:double;AMark:string;AColor:TColor);
var i:integer;
begin
 with AChart do
   for i := 0 to SeriesList.Count - 1 do
     if Series[i].Title = SeriesName
     then
       if AColor <> nil
       then Series[i].AddXY(X,Y,AMark,AColor)
       else Series[i].AddNullXY(X,Y,AMark);
end;


cvg   (2008-04-09 15:25:00) [1]

Потому что Series'ов очень много да еще и для двух Chart'ов, ну и к некоторым хотелось бы обращаться формально. Ну, например, образно примерно так: есть 4 графика на одном чарте, для каждого есть еще свои вспомогательные линии. Есть некоторая процедура, которая на основании неких входных данных рисует вспомогательные линии для каждого графика. Как мне внутри этой процедуры задать "рисуй вспомогательные линии к соответствующему графику"? Допустим, для этих вспомогательных линий у меня отведены Series20, Series21, Series29 и Series33. Предлагаешь каждый раз писать четырехступенчатый if?


Kolan   (2008-04-09 14:19:00) [2]

Скажи а зачем вобще тебе надо по имени что-то делать с графиком?


{RASkov}   (2008-04-09 14:17:00) [3]

> [23] cvg   (09.04.08 14:05)

Я не совсем в курсе ветки.... но может Tag, например, поможет?


cvg   (2008-04-09 14:05:00) [4]

Name даже проще, потому что они уже есть и не меняются. Мне ведь без разницы -- цвет или тайтл, лишь бы только функция выбирала нужный Series. А с цветом -- так я утешился ClNone'ом.


Kolan   (2008-04-09 13:56:00) [5]

> Ну в процедуре этой —— вместо Title.

То есть тебе все равно?

ЗЫ
 Спрашивал про цвет, потом тайтл, теперь он не нужен…


cvg   (2008-04-09 13:53:00) [6]

Ну в процедуре этой -- вместо Title.


Kolan   (2008-04-09 13:38:00) [7]

> Ладно, наплевать, буду пользоваться Name…

Для чего? :)


cvg   (2008-04-09 13:34:00) [8]

Ладно, наплевать, буду пользоваться Name...


Kolan   (2008-04-09 13:29:00) [9]

> Почему-то даже если title не задан

Потому, что используется Name компонента.


> В чем же дело-то, блин?…

Проверил несколько раз на BDS 2006 повторить не удалось.

ЗЫ
 Казалось бы причем тут отладчик?


cvg   (2008-04-09 13:23:00) [10]


> Ух ты это как же ты это делаешь? Научи?

Кликаю на чарте, появляется окошко "Editing Chart1", выбираю Series? cghfdf tcnm ryjgrf "Title...". Почему-то даже если title не задан, там все равно высвечивается "SeriesNN" ("NN" -- его номер). Ну, ввожу там что-нибудь. Нажимаю "OK", потом "Close" для всего окошка "Editing Chart1". Потом снова открываю это окошко, нахожу тот же Series, и с гарантией процентов 90 вижу у него старый title :(. В чем же дело-то, блин?..


Kolan   (2008-04-09 13:15:00) [11]

> В отладчике изменяю Title у любой из Series

Ух ты это как же ты это делаешь? Научи?


cvg   (2008-04-09 13:08:00) [12]

Что за фигня, товарищи??? В отладчике изменяю Title у любой из Series, а меняется он далеко не всегда! Ж:( В чем причина?


Kolan   (2008-04-09 11:53:00) [13]

> Вот я и спрашиваю, что ты будешь передавать фактически ?

Да забей, он уже для себя запомнил, что TColor— это исключение. Для TColor nilзаписывается как clNone.

:)


cvg   (2008-04-09 11:51:00) [14]

Ладно, ок, попробую сlNone. Сэнкс.


Сергей М.   (2008-04-09 11:49:00) [15]


> в AddNullXY цвет и не нужен


Ну и что ?

ты же вызывая эту процедуру что-то обязан указать последним параметро, коль скоро он у тебя не дифолтный ?

Вот я и спрашиваю, что ты будешь передавать фактически?


Kolan   (2008-04-09 11:49:00) [16]

> Короче, есть ли какой-либо аналог nil для типа TColor?

[1] ты так и не последовалс :(


clickmaker   (2008-04-09 11:48:00) [17]

clNone


Palladin   (2008-04-09 11:48:00) [18]

clNone


cvg   (2008-04-09 11:45:00) [19]


> А как ты вообще собрался передавать в эту процедуру "никакой"
> цвет ?

Ну так ведь в AddNullXY цвет и не нужен.

Короче, есть ли какой-либо аналог nil для типа TColor?


{RASkov}   (2008-04-09 11:40:00) [20]

> [3] cvg   (09.04.08 11:37)
> Ну и как тогда проще поступить?

Сравнивать равнозначные типы...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо