Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фича ли ЭТО с Evaluate / 25 сообщений из 28, страница 1 из 2
18.03.2008, 13:03
    #35197629
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
Лис - 9
Есть функция для обработки параметров и запуска через определенное время выбранную пользователем функцию/или подсказку...

Параметры могут быть типа N-C-A
Название параметров toPar1...toPar7

При входе в функцию начинаю их обрабатывать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	FOR m.loI =  1  TO PARAMETERS()
		DO CASE
			CASE TYPE("EVALUATE('toPar'+ALLTRIM(STR(m.loI))+'[1]')")#"U"
				loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))), 1 )
				loArrayCol  = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))), 2 )
				.ParamF[m.loI] = .NewArr(m.loArrayRow,m.loArrayCol)
				ACOPY(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),EVALUATE(.ParamF[m.loI]))
			OTHERWISE
				.ParamF[m.loI] = EVALUATE('toPar'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
И вот с какой фичей столкнулся....
Дебагер показывает:
EVALUATE('toPar'+ALLTRIM(STR(m.loI))) - массив
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) - строк 1
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),2) - колонок - 17
а на саму строку loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1)
Ругается что Function argument value, type, or count is invalid
Почему тогда в дебагере видно результат выполнения данных функций...

С Ув. Игорь...
...
Рейтинг: 0 / 0
18.03.2008, 13:27
    #35197717
Фича ли ЭТО с Evaluate
всегда в дрожь бросает,
когда передают не пойми что и затем ищут не мойми где

за аллтрим вообще руки отбиваю сразу

давай так тогда


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
local .....
lnParams = PARAMETERS()
FOR loI =  1  TO lnParams 
   luValue = EVALUATE('toPar'+LTRIM(STR(m.loI))
   if type( "luValue",  1 ) = "A"
     loArrayRow = ALEN( luValue , 1 )



совет
можете предать емпти или кастом и начитать ему уже св-ва?
...
Рейтинг: 0 / 0
18.03.2008, 13:28
    #35197720
Фича ли ЭТО с Evaluate
да и не loArrayRow,
а именуем правильно lnArrayRow
...
Рейтинг: 0 / 0
18.03.2008, 13:43
    #35197776
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
В дискусию я вступать неХЦЮ...
И что б что-то советовать надо проверять код...
CLEAR
LOCAL ARRAY aaa(1,17)
aaa[1,1]='1'
aaa[1,2]='2'
loValue = EVALUATE('aaa')
?TYPE(loValue)
?TYPE(loValue,1)
?TYPE("loValue")
?TYPE("loValue",1)
?TYPE(aaa)
?TYPE(aaa,1)
?TYPE("aaa")
?TYPE("aaa",1)

здеся меня ниКОГДА неБУДЕТ if type( "luValue", 1) = "A"

А как обЪявлять переменные... Эт кто как Хтит тот так и Др...
...
Рейтинг: 0 / 0
18.03.2008, 13:46
    #35197781
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
И надо еще внимательно читать вопрос...

Почему дебагер отображает результат...
А выполнить его нельзя....

С Ув. Игорь.
...
Рейтинг: 0 / 0
18.03.2008, 13:56
    #35197814
Фича ли ЭТО с Evaluate
ну тогда сам разбирайся
...
Рейтинг: 0 / 0
18.03.2008, 14:15
    #35197889
Фича ли ЭТО с Evaluate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")
loObject.addproperty("MyArray[1]")

= ttt(@laddd,,,,loObject)
= ttt(,@laddd,,,loObject)
= ttt(,,@laddd,,loObject)
= ttt(,,,@laddd,loObject)


************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		do case
			case lnParam= 1 
				= acopy(tu1 , toObject.MyArray) 
			case lnParam= 2 
				= acopy(tu2 , toObject.MyArray)
 			case lnParam= 3 
				= acopy(tu3 , toObject.MyArray) 
			case lnParam= 4 
				= acopy(tu4 , toObject.MyArray) 				
			otherwise
		endcase 	
		? ltrim(str(lnParam)) + ' куку  ' + type("toObject.MyArray", 1 )
	endif 
endfor
...
Рейтинг: 0 / 0
18.03.2008, 14:41
    #35198004
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
Да как создать массив и потом его отдать я уже разобрался...
Но я делал усе через отладчик...
Он мне показывает че Усе Ок...
А запускаешь ФИГА-тебе

А работает оно и так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
	FOR m.loI =  1  TO PARAMETERS()
		DO CASE
			CASE TYPE("EVALUATE('toPar'+ALLTRIM(STR(m.loI))+'[1]')")#"U"
				STORE .NewArr(ALEN('toPar'+ALLTRIM(STR(m.loI)), 1 ),ALEN('toPar'+ALLTRIM(STR(m.loI)), 2 ), 1 ) TO .ParamF[m.loI], m.loArray
				ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.)
			OTHERWISE
				.ParamF[m.loI] = EVALUATE('toPar'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
Перед запуском убиваем все массивы-параметры
NewArr - функция которая создает новое свойство массив
ParamF ссылка на массив или сам параметр...

Через Ж... Но работает как часы...
Главное что б не нагружать функциями...
Сейчас пока работает АвтоСохранение/ и самописный ToolTip...

И ВСЕЖ вопрос так остался без ответа...
ПОЧЕМУ ДЕБАГЕР ПОКАЗЫВАЕТ АЛЕКС ГУД...
А ВЕРНУТЬ ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) В ПЕРЕМЕННУЮ НИЗЯ

с Ув. Игорь
...
Рейтинг: 0 / 0
18.03.2008, 14:57
    #35198075
Фича ли ЭТО с Evaluate
еще раз
для непонятливых

я считаю, что проблема в реализ-и

и работает оно у Вас действительно через ....

макроподстановка зло - и нельзя завязывать реализацию
на передачу или вычесление чего-то по именам даже если это работает.

в Вашем случа, я уж не знаю, что за постановка и
почему массив должен прилетать в неизвестный параметр,
я пишу без макроподстновок,
принимаю и передаю что нужно и куда нужно,
поэтому нет проблем
...
Рейтинг: 0 / 0
18.03.2008, 15:02
    #35198095
Фича ли ЭТО с Evaluate
Код: plaintext
1.
ALLTRIM(STR(

нет пробелов справа НИКОГДА !!!

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

вместо того, чтобы нормально реализовать
какие-то алгоритмы, Вы занимаетесь созданием
какого-то макро.... универс-го мех-ма, который все-одно
будет работать через ..., если Вы его реализуете в том виде,
в котором показали
...
Рейтинг: 0 / 0
18.03.2008, 15:16
    #35198171
Фича ли ЭТО с Evaluate
странно - но работает
автор
= acopy("tu"+ltrim(str(lnParam)), toObject.MyArray)


так, что дукейс не нужен в моем примере

и в Вашем случае

достаточно проверки

Код: plaintext
1.
if TYPE('toPar'+LTRIM(STR(m.loI))",1)="A"
...
Рейтинг: 0 / 0
18.03.2008, 15:27
    #35198236
Фича ли ЭТО с Evaluate
Код: plaintext
1.
2.
3.
local loArray
=ACOPY('toPar'+LTRIM(STR(m.loI)),loArray)
* и размер смотреть уже у loArray
...
Рейтинг: 0 / 0
18.03.2008, 15:31
    #35198247
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
IgorProgrammerЛис - 9
И вот с какой фичей столкнулся....
Дебагер показывает:
EVALUATE('toPar'+ALLTRIM(STR(m.loI))) - массив
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1) - строк 1
ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),2) - колонок - 17
а на саму строку loArrayRow = ALEN(EVALUATE('toPar'+ALLTRIM(STR(m.loI))),1)
Ругается что Function argument value, type, or count is invalid
Почему тогда в дебагере видно результат выполнения данных функций...

С Ув. Игорь...

Фича это. Причем именно дебагера. Ошибка должна была выскочить уже в отладчике.

Если посмотреть HELP по фунуции ALEN(), то первым параметром должно стоять имя массива. Не может там стоять выражение . А ведь Evaluate() - это именно выражение. Функция.

Необходимо подсунуть функции ALEN(), то, что она просит. Имя. Точнее, выражение имени.

Код: plaintext
1.
loArrayRow = ALEN(('toPar'+ALLTRIM(STR(m.loI))), 1 )

Чтобы было понятнее, напишу отдельно

Код: plaintext
1.
2.
lcArrayName = 'toPar'+ALLTRIM(STR(m.loI))
loArrayRow = ALEN((m.lcArrayName), 1 )

По сути, все то же самое, только удалить само слово EVALUATE, но оставить его скобки. Скобки - это и есть выражение имени. Особый вид макроподстановки, который как раз и предполагает возвращение имени чего-либо.
...
Рейтинг: 0 / 0
18.03.2008, 15:54
    #35198347
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
12345вышелзайчикпогулятьеще раз
для непонятливых

я считаю, что проблема в реализ-и
Тогда предложите свою версию...
Как запускать определенную функцию(не зная какую, когда, сколько и какие у нее парамтры)
Например раз в 10 мин...

У меня повешен таймер с массивом функций и их параметров(или указатель на массивы-параметры)...
Когда срабатывает таймер, он бежит по массивам и если времяПоследнегоВыполнения+ВремяЧерезСикокоВыполнить больше или равно ТекущемуВремени то выполняем данную строку массива...

12345вышелзайчикпогулятьнет пробелов справа НИКОГДА !!!
Есть некоторые привычки (например alltrim, а не разбивать где RTrim, где LTrim)
авторlocal loArray
=ACOPY('toPar'+LTRIM(STR(m.loI)),loArray)
* и размер смотреть уже у loArray
Интересный подход...

Вы хотите обсуждать данный код...
Или хотите помочь в данной ситуации

ВладимирМФича это. Причем именно дебагера. Ошибка должна была выскочить уже в отладчике.
Я так и подумал...
Вот только описания данных прибамбасов НЕТУ...
ВладимирМALEN((m.lcArrayName),1)
Спасибо я так и сделал...

Вот только остался амперсант
loArray = '.ParamArray1'
Но вот ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.) работает только через амперсант...
так как второй массив это свойство объекта и на
ACOPY('toPar'+ALLTRIM(STR(m.loI)),('.ParamArray1')) идет ругань
...
Рейтинг: 0 / 0
18.03.2008, 15:58
    #35198374
Фича ли ЭТО с Evaluate
авторЕсть некоторые привычки (например alltrim, а не разбивать где RTrim, где LTrim)

ужОс

макроподстановка я так понимаю - это так-же привычка
и уже никак без нее

потерянный для общ-ва программер
...
Рейтинг: 0 / 0
18.03.2008, 16:00
    #35198388
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
12345вышелзайчикпогулятьужОс

макроподстановка я так понимаю - это так-же привычка
и уже никак без нее

потерянный для общ-ва программер

Я же вроде написал...
Код: plaintext
1.
2.
3.
4.
Вот только остался амперсант
loArray = '.ParamArray1'
Но вот ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.) работает только через амперсант...
так как второй массив это свойство объекта и на 
ACOPY('toPar'+ALLTRIM(STR(m.loI)),('.ParamArray1')) идет ругань
Если вы знаете как правильно скопировать массив зная его имя...
То ПЛЗ... поделитесь опытом

С Ув. Игорь.
...
Рейтинг: 0 / 0
18.03.2008, 16:04
    #35198410
Фича ли ЭТО с Evaluate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")
loObject.addproperty("MyArray[1]")

laddd =  1 
= ttt(@laddd,,,,loObject)
? laddd[ 3 , 2 ]

laddd =  2 
= ttt(,@laddd,,,loObject)
? laddd[ 3 , 2 ]

laddd =  3 
= ttt(,,@laddd,,loObject)
? laddd[ 3 , 2 ]

laddd =  4 
= ttt(,,,@laddd,loObject)
? laddd[ 3 , 2 ]



************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		= acopy("tu"+ltrim(str(lnParam)), toObject.MyArray)
	endif
endfor

это работает?
но только почему массив должен прилетать в неизв-й параметр?
что это за блуждающий тип, повед-е которого не зависит от программиста??
...
Рейтинг: 0 / 0
18.03.2008, 16:17
    #35198452
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
Пример не соответствует данной проблеме...
Тем более че надо писать кучу ненужного...

Есть Объект (без массивов-параметров)
Есть массив-свойство с указанием времени/процедуры/параметров(указатель на массив)
Есть входящие параметры(которые могут быть массивами)
Если в параметрах встречается массив...
Добавляем обЪекту параметр-массив с размерностью входящего параметра
Код: plaintext
1.
STORE .NewArr(ALEN('toPar'+ALLTRIM(STR(m.loI)), 1 ),ALEN('toPar'+ALLTRIM(STR(m.loI)), 2 ), 1 ) TO .ParamF[m.loI], m.loArray
Копируем массив
Код: plaintext
ACOPY('toPar'+ALLTRIM(STR(m.loI)),&loArray.)
Функция NewArr
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
PARAMETERS toRow, toCol, toDel && количество строк, количество столбцов, удалить свойство
m.toDel= IIF(TYPE("m.toDel")#"N", 0 ,m.toDel)
LOCAL loI
WITH This
	FOR m.loI= 1  TO  7 
		DO CASE
			CASE m.toDel= 1  AND !PEMSTATUS(This,'ParamArray'+ALLTRIM(STR(m.loI)), 5 )
				.AddProperty('ParamArray'+ALLTRIM(STR(m.loI))+'('+ALLTRIM(STR(m.toRow))+','+ALLTRIM(STR(m.toCol))+')')
				RETURN '.ParamArray'+ALLTRIM(STR(m.loI))
			CASE m.toDel= 2  AND PEMSTATUS(This,'ParamArray'+ALLTRIM(STR(m.loI)), 5 )
				REMOVEPROPERTY(This,'ParamArray'+ALLTRIM(STR(m.loI)))
		ENDCASE
	ENDFOR
ENDWITH

Может Вы продложете что-то лучше...
Или скажите как правильно ACOPY()
если ArraName1='toPar1'
ArraName2='.ParamArray' или ArraName2='This.ParamArray'
ACOPY((ArraName1),(ArraName2)) выдает ошибку
...
Рейтинг: 0 / 0
18.03.2008, 16:54
    #35198589
Фича ли ЭТО с Evaluate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
local laddd[ 3 , 2 ], loObject

loObject = createobject("custom")

laddd =  1 
= ttt(@laddd,,,,loObject)

laddd =  2 
= ttt(,@laddd,,,loObject)

laddd =  3 
= ttt(,,@laddd,,loObject)

laddd =  4 
= ttt(,,,@laddd,loObject)

? loObject.MyArray1[ 3 , 2 ]
? loObject.MyArray2[ 3 , 2 ]
? loObject.MyArray3[ 3 , 2 ]
? loObject.MyArray4[ 3 , 2 ]


************
function ttt
************
lparameters tu1, tu2, tu3, tu4,  toObject
LOCAL laARray, lnParam, lnParams, lcPropertyName
lnParams = parameters()
for lnParam= 1  to lnParams 
	if  type("tu"+ltrim(str(lnParam)),  1 )="A"
		lcPropertyName = "MyArray"+ltrim(str(lnParam))
		if !pemstatus(toObject, lcPropertyName,  5 )
			toObject.addproperty(lcPropertyName+"[1]")
		endif
		lcPropertyName = "toObject."+lcPropertyName
		lcCmd = "acopy(tu"+ltrim(str(lnParam))+","+ lcPropertyName+")"
		&lcCmd
	endif
endfor
...
Рейтинг: 0 / 0
18.03.2008, 17:38
    #35198774
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
Особенно мне понравилось &lcCmd... :)
Так я и не увидел ACOPY без амперсанта...
...
Рейтинг: 0 / 0
18.03.2008, 17:41
    #35198787
Фича ли ЭТО с Evaluate
а что Вам нравится,
я ведьсказал - это зло

и ноги растут от Вашей реализации

правильно передавать что нужно, ловить где нужно и присваивать кому нужно

я не ссылаюсь по именам, а передаю и ловлю куда нужно
и создаю что нужно и где нужно

у Вас иная реал-я - вот и думайте откуда ног растут
...
Рейтинг: 0 / 0
18.03.2008, 18:40
    #35198952
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
В данном случае, видимо, без макроподстановки не обойтись. Здесь проблема именно в том, что массив - это свойство объекта. Т.е. выражение имени возвращает не вполне имя, а некую ссылку. Нет имени как такового, только опосредовано через имя другого объекта.

Для "обычных" массивов выражение имени нормально работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dimension bb( 2 , 2 )
bb[ 1 ]= 1 
bb[ 2 ]= 2 
bb[ 3 ]= 3 
bb[ 4 ]= 4 

Dimension aa( 2 , 2 )
dd = "aa"
?ACopy(bb, (dd))

oo = CreateObject("Custom")
oo.AddProperty("aTest[2,2]")
dd = "oo.aTest"
?ACopy(bb, &dd)
...
Рейтинг: 0 / 0
19.03.2008, 11:33
    #35199946
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
ВладимирМВ данном случае, видимо, без макроподстановки не обойтись. Здесь проблема именно в том, что массив - это свойство объекта. Т.е. выражение имени возвращает не вполне имя, а некую ссылку. Нет имени как такового, только опосредовано через имя другого объекта.
Спасибо...

Вы не знаете где можно почитать/преобрести что-либо где б были описаны тонкости фичи и баги Лисы-9ой...

С Ув. Игорь...
...
Рейтинг: 0 / 0
19.03.2008, 19:39
    #35201729
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
IgorProgrammerТогда предложите свою версию...
Как запускать определенную функцию(не зная какую, когда, сколько и какие у нее парамтры)
Например раз в 10 мин...

Оберни все функции в объекты производные от одного базового класса. Назовем например clsJob, пусть все лежит в joblib.vcx.
В производном классе от clsJob прописывать методы:
Set(lnInstance) для настройки параметров
InitInstance(lnInstance) установка значений начальных параметров в свойства объекта
Run() выполнение функции (все параметры в свойствах объекта)
где lnInstance - номер объекта чтобы можно было создать несколько наборов параметров.

При запуске задания:
Код: plaintext
1.
2.
3.
4.
5.
lpara tcClassName, tnInstance
loObj = NewObject(tcClassName, 'joblib')
loObj.InitInstance(tnInstance)
loObj.Run()
...
Я бы примерно так сделал. Макроподстановок никаких не надо.
...
Рейтинг: 0 / 0
19.03.2008, 20:01
    #35201782
IgorProgrammer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фича ли ЭТО с Evaluate
Dima TОберни все функции в объекты производные от одного базового класса. Назовем например clsJob, пусть все лежит в joblib.vcx.
В производном классе от clsJob прописывать методы:
Set(lnInstance) для настройки параметров
InitInstance(lnInstance) установка значений начальных параметров в свойства объекта
Run() выполнение функции (все параметры в свойствах объекта)
где lnInstance - номер объекта чтобы можно было создать несколько наборов параметров.

При запуске задания:
lpara tcClassName, tnInstance
loObj = NewObject(tcClassName, 'joblib')
loObj.InitInstance(tnInstance)
loObj.Run()
...
Я бы примерно так сделал. Макроподстановок никаких не надо.

Есть небольшое но...
1) Изначально этот класс создавался для навороченной подсказки...
Даже забито место для димонстрации работы комплекса...
Мол сиди и смотри(правда нету времени чеБ привести в порядок)...

2) Функции постоянно добавляются...
Да и аппетит как говорится приходит во время ЕДЫ...

3) Кроме меня ЭТ фигней НИкто заниматся НЕбудет...
Да и у меня на ЭТ фигню нет времени...

А тута просто пользователи нелетели со своими приблудами...
Мол хотим управлять ХОТ-чем либо...
Типа задания по расписанию в Виндах...(в пределах работающего комплекса)

Вот я и пытаюсь прикрутить к существующему классу...(кое-че прикрутил :) )
А то терзают меня смутные сомнения, что ЭТИ навороты в скором времени отпадут...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Фича ли ЭТО с Evaluate / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]