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

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

Снова то же вопрос: полярные диаграммы


тихий вовочка ©   (2005-05-03 07:46:00) 

Постоянно в своих программах строю полярные диаграммы (зависимость величины от угла). Надоело это делать методом copy-paste. Хочу создать компонент. Теперь нужны ваши советы:
1)От кого наследоваться? TGraphicControl?
2)Делать отдельно PolarPlot а-ля TChart и коллекцию TSeries или все хранить вместе?
3)Как реализован TChart? Свои св-ва плюс коллекция указателей на TSeries?

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


тихий вовочка   (2005-06-02 23:23:00) [1]

Мастера ушли в "потрепацца"? Кажется я не переопределил FID и поэтому каждый новый эл-т коллекции у меня имеет имя TPolarSeries 0


тихий вовочка   (2005-05-29 14:49:00) [2]

1)Уже разобрался
2)Я имею в виду вот что: при работе в дизайн-тайм для объектов-коллекций вызывается стандартный редактор среды. И если вы добавляете в коллекцию элемент, ему автоматом присваивается номер (а-ля Panel1, Panel2 и т.д) С моими TPolarSeries - наследниками TCollectionItem этого не происходит. Что именно я не унаследовал или не переопределил?


Cobalt   (2005-05-28 14:35:00) [3]

2 тихий вовочка ©   (24.05.05 22:25) [9]
Насчёт модуля(1) - очень странно - при бросании компонента модуль указывается при компиляции или сохранении - например бросьте Memeo - StdCtrls добавится при проверке синтаксиса. Может в пакадже что-то не так? регистрация происходит в том модуле, в котором объявлен компонент?

По (2) - TPolarSeries - это, кажется, класс?
а TPolarSeries1 - это тоже класс такой? Потомок? ;)


тихий вовочка   (2005-05-27 20:47:00) [4]

up


тихий вовочка   (2005-05-24 22:25:00) [5]

В первом приближении сделал. Данные для каждого графика храню в наследниках CollectionItem'а, в самом компоненте их коллекция. Все строится нормально. Вот только три вопроса:
1)Как сделать так, чтобы при инсталляции package'а мой модуль был виден? А то компонент регистрируется, на форму кладется, а модуль при компиляции приходится вручную указывать.
2)Как реализовать автоматическое увеличение номеров Collectionitem'ов при их добавлении? Колдовать с FID? Я думал унаследую это автоматом от предка.
А у меня получается так: 0 - TPolarSeries, 1 - TPolarSeries. Хотелось бы TPolarSeries1, TPolarSeries2...

Вопросы может и глупые, но вы меня простите. Тяжело писать на C++ Builder наследника для VCL, написанного на Pascal (я в инете нигде вообще примера для Билдера по работе с коллекциями не нашел)
3)Не найдется ли знающий человек для инспекции моего кода? А то самому в стену головой биться надоело.


MBo   (2005-05-08 11:53:00) [6]

>Вот тут две картинки
честно говоря, не вижу ничего такого, чего нельзя сделать за пару минут в TeeChart

> Как это самому добавить?
Просто переобъявить свойства OnMouseDown и Up в published


тихий вовочка   (2005-05-08 11:28:00) [7]

Вот тут две картинки: то, что было раньше и новый компонент в дизайн-тайме.
http://ksri.narod.ru/polarplot.html

Еще глупый вопрос:
У TGraphicControl вроде бы нет обработчиков OnMouseDown и OnMouseUp. Как это самому добавить? через декларирование обработчика WM_... или у кого-то из предков надо вытащить явно?


Igorek   (2005-05-06 13:54:00) [8]

тихий вовочка ©   (03.05.05 7:46)
Можно попробовать другой подход.
Если есть существующий компонент, который в принципе может нарисовать полярную диаграму, но интерфейс не подходит, тогда возьми ВинКонтрол, агрегируй в него сей компонент и сделай как child, что надо - выведи наружу, ну и добавь свою функциональность.
Можешь также сделать наследника TChart, перекрыть часть рисования и его агрегировать.


Юрий Зотов   (2005-05-06 02:46:00) [9]

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

Просто опубликовать:

published
 property MyProp;
 ...
end;


тихий вовочка   (2005-05-05 21:57:00) [10]

Нет задачи не специфические. Завтра сделаю скриншот и покажу. Пока сделал наследника TGraphicControl и рисую в нем. Готов один метод AddArray (не считая Clear и настройки внешнего вида) Все работает и рисует. Возникли глупые вопросы: как сделать так, чтобы свойства родителя были видны в дизайнере? Например общий для всех Font. Пришлось определять свое св-во, что неудобно и нерационально.


MBo   (2005-05-04 06:59:00) [11]

>Если будет интересно сделаю скриншот
Да, можно посмотреть. Возможно, задачи специфические


тихий вовочка   (2005-05-04 06:49:00) [12]

Честно говоря на сайте steema нигде не могу найти упоминание о polar plot (или polar diagram).
Если вы про это, то это убого
http://www.steema.com/products/teechart/version5/whatsnew/images/Polar_Transparency.png
Могу показать, как рисует моя прога. Если будет интересно сделаю скриншот.
А по поводу TGraphicControl - у него по-моему закрыты OnMouseUp и Down? Сейчас нет среды под рукой - не посмотреть. И каков ваш совет с коллекциями?


MBo   (2005-05-03 08:37:00) [13]

В TeeChart Pro есть полярные диаграммы.
Если все же есть необходимость сделать свой компонент - TGraphicControl - подходящий предок.


Наверх

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