Не получается выполнить команду Run Command.

MapInfo, MapBasic
Ответить
sysrepos
Активный участник
Сообщения: 128
Зарегистрирован: 07 окт 2012, 16:25
Репутация: 20
Откуда: Москва

Не получается выполнить команду Run Command.

Сообщение sysrepos »

Не получается выполнить команду Run Command.
значение стиля символа хранятся в текстовой переменной.
нужно это полученное значение присвоить переменной типа symbol
делаю так:

Код: Выделить всё

Sub  proc1
dim sym_n as symbol 'переменная типа symbol 
dim str as string   'строка, в которой храниться значение символа
dim rcm as string   'строка для выполнения в RunCommand

str="symbol(34, 16711680, 6)"

rcm="sym_n=make"+str  'строка для выполнения в RunCommand (если ее выполнять без RunCommand, то работает правильно)
note rcm 'получается строка sym_n=makesymbol(34, 16711680, 6)
Run Command rcm
End Sub
компилируется, но выдает ошибку в мапинфо "Переменная sym_n не определена"

Как присовить переменной sym_n значение, если оно храниться в текстовой переменной?
может это можно сделать без Run Command? если да, то как?
Аватара пользователя
ginpetr
Завсегдатай
Сообщения: 385
Зарегистрирован: 21 июн 2011, 12:07
Репутация: 140
Откуда: Орск
Контактная информация:

Re: Не получается выполнить команду Run Command.

Сообщение ginpetr »

в выполняемом этим оператором тексте не должно быть имен переменных. Придется поломать голову :-)
Кажется я разбирал стиль на части с помощью
StyleAttr( style, attribute )
а потом собирал с помощью
MakeBrush( ) function, MakeFont( ) function, MakePen( ) function, MakeSymbol( ) function
Sibit
Активный участник
Сообщения: 216
Зарегистрирован: 21 окт 2009, 13:29
Репутация: 28
Откуда: Новосибирск

Re: Не получается выполнить команду Run Command.

Сообщение Sibit »

А и не выйдет. Переменная действительно невидима для RunCommand. Можно распарсить строку str. Разобрать ее на 3 значения и подсунуть ее в MakeSymbol.
А как значения стиля попадают в строку? Может проще хранить сами параметры стиля в переменных?

PS если уж совсем никак по-другому:

Код: Выделить всё

	str="symbol(34, 16711680, 6)"
	rcm = "Set Style Symbol Make" + str
	print rcm 
	Run Command rcm
	sym_n = CurrentSymbol()
sysrepos
Активный участник
Сообщения: 128
Зарегистрирован: 07 окт 2012, 16:25
Репутация: 20
Откуда: Москва

Re: Не получается выполнить команду Run Command.

Сообщение sysrepos »

Спасибо Sibit, то что нужно
Ответить

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

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

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