RUS  ENG 

Длина метки

Страницы: 1
RSS
Длина метки
 
Здравствуйте.

Ситуация следующая.

Рисую метку с помощью команды SetLabel.
Подскажите, какая максимально допустимая длина выводимого в метку текста. Просто столкнулась с ситуацией, что при определенной длине текста в метке приложение перестает функционировать.

И еще небольшой вопрос.
Вывожу метку с текстом в несколько строк (использую внутри метки перевод строки).
Хочу вывести одну менту строго под другой не всегда получается, либо наезжаю, либо большой интервал, о хотелось бы что бы смотрелось как единое целое. В одной метке вывести не могу потому как метки вывожу размыми цветами.
Может есть какая нибудь альтернатива того фрагмента который используется мною:

WideString text;

AnsiString str1 = "метка1\\nметка1\\nметка1";
AnsiString str2 = "метка2\\nметка2";

size = style->get_TextHeight()/MapCtrl1->MapScale;
textheight = style->get_TextHeight();
//Первая метка
text = "{\\c"+IntToStr(12632256)+"\\s"+FloatToStr(size)+"}"+ str1;
MapCtrl1->SetLabel(DrawHandle, new_X, new_Y, 0, 0, text, 0, 0, eSouthEast);
//Вторая метка
text = "{\\c"+IntToStr(255)+"\\s"+FloatToStr(size)+"}"+ str2;
MapCtrl1->SetLabel(DrawHandle, new_X - textheight * 3 , new_Y, 0, 0, text, 0, 0, eSouthEast); // 3 - это три строки в метке
//new_X и new_Y коотдинаты левого верхнего угла первой метки
 
1. В ближайшем обновлении: Ограничение по длине сняли. Количество строк максимальное пока останется 32.
2. Чтобы вывести одну бирку под другой лучше newX и newY на карте им давать одинаковыми. Это кооррдинаты местности и складывать их с высотой текста на экране не нужно. А сдвиг меток друг относительно друга на экране изменять параметрами ShifX ShiftY (те что у Вас 0,0) в пикселях.
Примерно так:
MapCtrl1->SetLabel(DrawHandle, new_X, new_Y, 0, 0, text1, 0, 0, eSouthEast);
MapCtrl1->SetLabel(DrawHandle, new_X ,new_Y, 0, textheight * 3, text2, 0, 0, eSouthEast);
Страницы: 1