Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Позиционирование TextOutA, Позиционирование TextOutA 
V
    Опции темы
MOFA
  Дата 9.4.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 17.12.2006

Репутация: нет
Всего: нет



Помогите пожалуйста разобраться с позиционированием текста на Canvas.
Проблема следующая, я строю график, который представляет собой столбики разной высоты, нужно на графике
подписать значение абсцысс для каждого столбика под осью, так чтобы числа были красиво позиционированы, относительно
столбиков (не слева и не справа , а по центру smile так вроде понятно). И еще нужно проставить значения ординат над каждым столбиком,
но эта задача аналогична первой, вообщем как правильно позиционировать TextOutA.

Код

for (int i=0; i!= (int)darkItems.size(); i++) {

                pair<double,double> item= darkItems[i];
                TPoint point= getScreenCoords (item);
                TPoint base = getScreenCoords (item.first, 0);

                MainImage->Canvas->MoveTo(base.x, base.y);
                MainImage->Canvas->LineTo(point.x, point.y);
                MainImage->Canvas->MoveTo(point.x-2, point.y);
                MainImage->Canvas->LineTo(point.x+3, point.y);
                
                MainImage->Canvas->Font->Color= axisColor;
                MainImage->Canvas->TextOutA(base.x-3, base.y + 8, FloatToStr(item.first));

                MainImage->Canvas->Font->Color= darkItemsColor;
                MainImage->Canvas->TextOutA(point.x-5, point.y - 13, FloatToStr(item.second));
        }




Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  example.jpg 6,78 Kb
PM MAIL   Вверх
ama_kid
Дата 9.4.2007, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 10
Всего: 95



Попробоуй испльзовать TextWidth и TextHeight:
MainImage->Canvas->TextOutA(point.x - (TextWidth(FloatToStr(item.second)) div 2) - 5, point.y - 13, FloatToStr(item.second));


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
MOFA
  Дата 9.4.2007, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 17.12.2006

Репутация: нет
Всего: нет



Этот пример наверное на Delphi. Функции TextWidth нету, и как метода у AnsiString такого тоже нету.
Есть еще какие-то решения?
PM MAIL   Вверх
HappyLife
Дата 9.4.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



MOFA, Canvas->TextWidth ;)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.