хочу изменить цвет и тип заливки объекта, делаю так
myobj = selection.obj
p_var = ObjectInfo(selection.obj,OBJ_INFO_PEN)
p_width = StyleAttr(p_var,PEN_WIDTH)
p_pattern = StyleAttr(p_var,PEN_PATTERN)
p_color = StyleAttr(p_var,PEN_COLOR)
new_color = StyleAttr(pen_style,PEN_COLOR)
new_pen = MakePen(p_width,p_pattern,new_color)
Alter Object myobj
Info OBJ_INFO_PEN, new_pen
Update selection Set obj = myobj Where RowId =intr
b_var = ObjectInfo(selection.obj,OBJ_INFO_BRUSH) ***********
b_pattern = StyleAttr(b_var,BRUSH_PATTERN)
b_forecolor = StyleAttr(b_var,BRUSH_FORECOLOR)
b_backcolor = StyleAttr(b_var,BRUSH_BACKCOLOR)
new_brush = MakeBrush(b_pattern,new_color,b_backcolor)
Alter Object myobj
Info OBJ_INFO_BRUSH, new_brush
Update selection Set obj = myobj Where RowId =intr
в строке *********** выдаёт сообщение , что ObjectInfo: аргумент 2 вышел за заданные пределы, что не так? он ругается на OBJECT_BRUSH? У меня MapInfo и MapBasic v 9.5
Изменение аттрибутов в MapBasic
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 22 окт 2010, 10:52
- Репутация: 0
- asgs
- Участник
- Сообщения: 89
- Зарегистрирован: 04 авг 2010, 06:35
- Репутация: 1
- Контактная информация:
Re: Изменение аттрибутов в MapBasic
С виду вроде все нормально. Попробуйте так:
myobj = selection.obj
p_var = ObjectInfo(myobj,OBJ_INFO_PEN)
p_width = StyleAttr(p_var,PEN_WIDTH)
p_pattern = StyleAttr(p_var,PEN_PATTERN)
p_color = StyleAttr(p_var,PEN_COLOR) 'Непонятно, нафига старый цвет, если все равно менять
new_color = StyleAttr(pen_style,PEN_COLOR)
new_pen = MakePen(p_width,p_pattern,new_color)
Alter Object myobj Info OBJ_INFO_PEN, new_pen
b_var = ObjectInfo(myobj,OBJ_INFO_BRUSH) ***********
b_pattern = StyleAttr(b_var,BRUSH_PATTERN)
b_forecolor = StyleAttr(b_var,BRUSH_FORECOLOR)' Тот же вопрос по цвету, что и выше
b_backcolor = StyleAttr(b_var,BRUSH_BACKCOLOR)
new_brush = MakeBrush(b_pattern,new_color,b_backcolor)
Alter Object myobj Info OBJ_INFO_BRUSH, new_brush
Update selection Set obj = myobj Where RowId =intr
Блин, виртуалка накрылась, а так бы код сам проверил
И вопрос в порядке бреда - а Вы уверены, что в выборку полилиния не попала? У которой заливки не может быть в принципе?
myobj = selection.obj
p_var = ObjectInfo(myobj,OBJ_INFO_PEN)
p_width = StyleAttr(p_var,PEN_WIDTH)
p_pattern = StyleAttr(p_var,PEN_PATTERN)
p_color = StyleAttr(p_var,PEN_COLOR) 'Непонятно, нафига старый цвет, если все равно менять
new_color = StyleAttr(pen_style,PEN_COLOR)
new_pen = MakePen(p_width,p_pattern,new_color)
Alter Object myobj Info OBJ_INFO_PEN, new_pen
b_var = ObjectInfo(myobj,OBJ_INFO_BRUSH) ***********
b_pattern = StyleAttr(b_var,BRUSH_PATTERN)
b_forecolor = StyleAttr(b_var,BRUSH_FORECOLOR)' Тот же вопрос по цвету, что и выше
b_backcolor = StyleAttr(b_var,BRUSH_BACKCOLOR)
new_brush = MakeBrush(b_pattern,new_color,b_backcolor)
Alter Object myobj Info OBJ_INFO_BRUSH, new_brush
Update selection Set obj = myobj Where RowId =intr
Блин, виртуалка накрылась, а так бы код сам проверил
И вопрос в порядке бреда - а Вы уверены, что в выборку полилиния не попала? У которой заливки не может быть в принципе?
Злобный йожег
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость