Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

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

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

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

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


 
MBo ©   (2005-05-03 08:37) [1]

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


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

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


 
MBo ©   (2005-05-04 06:59) [3]

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


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

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


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

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

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

published
 property MyProp;
 ...
end;


 
Igorek ©   (2005-05-06 13:54) [6]

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


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

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

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


 
MBo ©   (2005-05-08 11:53) [8]

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

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


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

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

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


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

up


 
Cobalt ©   (2005-05-28 14:35) [11]

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

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


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

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


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

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



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

Форум: "Компоненты";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.02 c
2-1133682214
bogdan
2005-12-04 10:43
2005.12.25
Цвета в мемо


14-1133431327
Knight
2005-12-01 13:02
2005.12.25
IRC - протокол...


2-1133873684
Zilog
2005-12-06 15:54
2005.12.25
Всегда ли необходимо инсталлировать BDE?


2-1134225787
De1uxe
2005-12-10 17:43
2005.12.25
String


2-1133866993
WebSQLNeeder
2005-12-06 14:03
2005.12.25
Как работать с ini файлами или как создать свои настроичные файлы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский