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

Вниз

Какой компонент использовать для отображения сектора   Найти похожие ветки 

 
evg   (2010-03-04 10:44) [0]

Доброго дня!

Подскажите пожалуйста, задачка такая:
Надо компонент, что бы можна было отображать сектора круга и что бы каждый сектор реагировал на ОнКлик (имел свой евент).
Самому писать ? Или есть что готовое. Просто в создании своих компонентов не силен.

Спасибо.


 
Jeer ©   (2010-03-04 11:52) [1]

На TBitmap рисуешь свой секторный круг, выводишь хоть куда, по клику на этот хоть-куда определяешь точку и ее цвет (цвета разные же) - вот тебе и попадание в сектор x с цветом clX


 
evg   (2010-03-04 12:01) [2]

А если цвет у всех секторов одинаковый?


 
Jeer ©   (2010-03-04 12:12) [3]

Зачем тогда рисовать сектора ?
Обычно делают разные цвета или оттенки одного.
Ну или определяй попадание по формуле - заморочка, но работать будет.

Или Polygon-ами рисуй и определяй внутрь.


 
evg   (2010-03-04 12:16) [4]

Поигонами не удобно.
Суть задачи в чем:
таких секторов много, к каждому привязана своя инфа, плюс надо реализовать поиск по заданому критерию - после чего все сектора, которые попали в даный критерий должны поменять цвет...


 
Jeer ©   (2010-03-04 12:19) [5]

Я бы сделал наследника от TPaintBox с нужными методами и свойствами.
Кстати самому скоро такая хрень понадобится :)


 
evg   (2010-03-04 12:25) [6]

можно...но с визуальными компонентами как-то не дружу....наверно прийдется


 
Jeer ©   (2010-03-04 12:31) [7]

Ну и рисовать можно Canvas.Arc()


 
evg   (2010-03-04 12:36) [8]

еще вопросик:
если сектора будут очень близко друг от друга....канва вроде - квадрат..
или я ошибаюсь?


 
Jeer ©   (2010-03-04 12:57) [9]

Рисовать Canvas.Pie()

Если размеры пайта небольшие, скажем 64*64, то длина окружности около 100 пикс, а значит допуская мин. расстояние между секторами в 1 пикс, получим примерно 50 секторов, но будут сливаться ближе к центру


 
Jeer ©   (2010-03-04 12:58) [10]

64*64 == pi*D = 200 пикс


 
Игорь Шевченко ©   (2010-03-04 14:39) [11]


> Кстати самому скоро такая хрень понадобится :)


Chart ?


 
{RASkov} ©   (2010-03-04 15:08) [12]

> канва вроде - квадрат..

нет, у канвы нет ни размеров, ни форм, ни веса, ни температуры, ни еще чего-то, что может присутствовать у владельца канвы.


 
Jeer ©   (2010-03-04 16:04) [13]


> Игорь Шевченко ©   (04.03.10 14:39) [11]
> > Кстати самому скоро такая хрень понадобится :)
> Chart ?


Да не - нужно легковесное, с удобными и нужными свойствами, маленькие PIE-диаграмки на картограмме.
Нужны два варианта: pie и гистограмма ( столбики )
Таких микро-шейпов может быть 2-3 десятка.


 
Jeer ©   (2010-03-04 16:07) [14]


> {RASkov} ©   (04.03.10 15:08) [12]
>
> > канва вроде - квадрат..
>
> нет, у канвы нет ни размеров, ни форм, ни веса, ни температуры,
>  ни еще чего-то, что может присутствовать у владельца канвы.
>


Не вредничай, человек просто пояснил самому себе, что рисуется на канве пайнтбокса, который не более чем "просто" преобразователь координат на канве родителя в локальные.


 
Игорь Шевченко ©   (2010-03-04 16:16) [15]

Jeer ©   (04.03.10 16:04) [13]

Я себе делал как раз такое, мне тоже с чартом было неудобно



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

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

Наверх





Память: 0.48 MB
Время: 0.059 c
15-1271696770
hawkins
2010-04-19 21:06
2010.08.27
Не работает подчеркивание ошибок в редакторе делфи


15-1266013815
Юрий
2010-02-13 01:30
2010.08.27
С днем рождения ! 13 февраля 2010 суббота


2-1265445748
lewka
2010-02-06 11:42
2010.08.27
Размеры изображения


9-1185113429
AlexanderMS
2007-07-22 18:10
2010.08.27
Ограждение округлой формы.


2-1267032574
Nostalgia
2010-02-24 20:29
2010.08.27
стєк





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский