Помогите, как задать цвет используя переменную?

MapInfo, MapBasic
Ответить
evr
Новоприбывший
Сообщения: 1
Зарегистрирован: 27 окт 2008, 15:16
Репутация: 0

Помогите, как задать цвет используя переменную?

Сообщение evr » 27 окт 2008, 15:36

Задача: установить цвет подписей по цвету линейных объектов одного из слоев карты.
Хотелось бы чтобы этот кусок кода работал (или как добиться этого же результата).
Выдает ошибку - встретилось RGBcolor, там где ожидается числовая константа.
Можно подставить конкретные параметры в RGB функцию, но как их получить по значению (red*65536 + green*256+blue = RGBcolor)
Dim RGBcolor As Integer
Dim objPen As Pen

Select Obj From tabName Into TabObj
Fetch First From TabObj
objPen = ObjectInfo( TabObj .obj , OBJ_INFO_PEN )
RGBcolor = StyleAttr(objPen , PEN_COLOR)

Set Map Window idW_map
Layer tabName1
Label With LayerName
Auto On
Font ("Times New Roman Cyr", 0, 12, RGBcolor)

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Помогите, как задать цвет используя переменную?

Сообщение Boris » 09 ноя 2008, 04:56

evr писал(а):Задача: ...
Set Map Window idW_map
Layer tabName1
Label With LayerName
Auto On
Font ("Times New Roman Cyr", 0, 12, RGBcolor)
Приведенный синтаксис позволяет использовать только константы в описании типа Font, для задания переменных следует использовать следующие выражение:
MakeFont( fontname, style, size, fgcolor, bgcolor )
или заранее задать их переменной типа Font.
то есть:
Set Map Window idW_map
Layer tabName1
Label With LayerName
Auto On
Font MakeFonе("Times New Roman Cyr", 0, 12, RGBcolor, WHITE)
PS
надо не забыть задать цвет фона, иначе это будет следующим ругательным сообщением.

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя