Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > вывод надписи на графике


Автор: kuvshinka 4.6.2008, 16:40

вывод текста:
Код

Chart->Canvas->TextOut(координата x, координата y, строка);



подскажите как вывести надпись в произвольном месте TChart-a  (см. выше) вместе ("поверх") с каким-либо  графиком ???

Автор: SerK 6.6.2008, 10:37
kuvshinka 

Все очень просто.

Код

Chart->Canvas->Brush->Stile=bsClear;
//и текст будет прозрачным, только указывайте другие координаты
Chart->Canvas->TextOut(0, 0," строка1");
Chart->Canvas->TextOut(10, 10," строка2");//и тд.

Автор: kuvshinka 6.6.2008, 16:14
SerK - да не так все просто, как хотелось бы....

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

Автор: SerK 12.6.2008, 09:05
kuvshinka 

Дело в том, что сначала нужно выводить графику (график, что тоже есть графика), а только потом текст.

Автор: JayTi 13.6.2008, 07:06
там в графике есть событие OnAfterDraw, это самое последнее событие после выполнения графиком своего цикла прорисовки. Там можешь описать вставку текста.

Автор: kuvshinka 17.6.2008, 12:05
JayTi: спасибо за информацию, но у меня задача следующая:
есть график типа Area с большим число точек (5000) - точки графика по частям разделены различными цветами (100 точек - красные, далее 350 точек - синие и т.п.)...
Надо сделать  в середины каждого цветового диапазона графика  вывод произвольной текстовой надписи, но чтобы они (надписи) при проуручивании графика вправо прокручивались бы вместе с графиком, а так получается, что график прокручивается, а надпись стоит на месте (типа указана точка вывода надписи)....

Автор: BOB4uK 12.8.2008, 10:49
Цитата(kuvshinka @ 17.6.2008,  12:05)
JayTi: спасибо за информацию, но у меня задача следующая:
есть график типа Area с большим число точек (5000) - точки графика по частям разделены различными цветами (100 точек - красные, далее 350 точек - синие и т.п.)...
Надо сделать  в середины каждого цветового диапазона графика  вывод произвольной текстовой надписи, но чтобы они (надписи) при проуручивании графика вправо прокручивались бы вместе с графиком, а так получается, что график прокручивается, а надпись стоит на месте (типа указана точка вывода надписи)....

Незнаю насколько актуален вопрос но все просто!
у TChart есть методы для осей, которые возвращают экранные координаты в облосте TChart на основе реальных координат
Тем самым зная координаты в той системе в кот работаешь можешь получить в экранных...
И перемещение заработает...
Код

void __fastcall TfmMain::Chart1AfterDraw(TObject *Sender)
{
    double x,y;
    x=Chart1->BottomAxis->CalcPosValue(-25);
    y=Chart1->LeftAxis->CalcPosValue(70);
}


(координата в пикселах в облости TChart)=TChart->ось->CalcPosValue(координата в твоей координатной системе);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)