powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / FUNCTION как возвратить 2 переменные?
14 сообщений из 14, страница 1 из 1
FUNCTION как возвратить 2 переменные?
    #33889726
Фотография givi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день. Известно что функция может вернуть только одно значение. А мне вот надо 2 и более. Как выкрутиться подскажите. Неужели только глобальными переменными?
С уважением, Givi.
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889742
Заботин А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать временную таблицу для передачи значений.
Расскажите, пожалуйста, поподробнее о ситуации, которая привела к требованию возврата нескольких значений.
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889764
Фотография givi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Суть: есть функция, для того что бы отслеживать какие таблицы были уже открыты а какие нет - и с какими индексами - что бы при закрытии проверять -была ли открыта ранее таблица и если была то с каким индексом.... Вот с этим и заморочился.....
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889813
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и вертай строку через разделитель или массив
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889848
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
local loCollection
loCollection=createobject(...,...)
lnResult = myfunc(@loCollection)

a еще лучше

loForm=createob(...)
if type('loForm')=="O" and !isnull...
loForm.Show()
if if type('loForm')=="O" and ... and loForm....
lnParam1 = loForm.tt
lnParam2 = loForm.kk
endif
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889860
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lcAliac = loForm.cAlias
lcOrder = loForm.cOrder

вообще нет проблем, что ты будешь щупать при закрытии формы или ...
сделай форме свойства необходимые и щупай их затем
переменные и параметры не нужны
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889863
Фотография givi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если массив то это будет выглядеть так:
Return(array(i,j))
????
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889868
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у лисы можно заслать переменную или массив с собакой

@rrr


почитай хелп
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889872
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызов:
= FunctionName(@ArrayName)
Далее анализируешь
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33889874
Фотография givi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С формой то все это хорошо - а когда формы нет???
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33890023
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
формы - нет
ну можно же не функцию использовать
а создать кастом-объект умный со свойствами
сам пусть чего-то делает и сам себе пропертя меняет
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33890332
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Идеальный вариант - это использовать не функцию, а метод класса. В классе можешь насоздовать сколько угодно проперетей или проперти, содержащие массива и колекции.

Если поставить "костыли", то в FoxPro можно передавать в функцию параметры не только по значению, но и по ссылки (та самая "собака"). Это значит, что изменения параметра внутри функции будут "видны" во вне функции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
LOCAL lnTest1, lnTest2, lnResult

?"Before"
?"m.lnTest1=",m.lnTest1
?"m.lnTest2=",m.lnTest2
?"m.lnResult=",m.lnResult

lnResult = MyFunc(@m.lnTest1, @m.lnTest2)

?"After"
?"m.lnTest1=",m.lnTest1
?"m.lnTest2=",m.lnTest2
?"m.lnResult=",m.lnResult

FUNCTION MyFunc
LPARAMETERS lnP1, lnP2
lnP1 =  1 
lnP2 =  2 
return  3 

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

Код: plaintext
DO MyFunc WITH m.lnTest1, m.lnTest2

Просто замени в приведенном примере вызов функции на вызов процедуры. Посмотри, что получится.
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33891037
Penner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MyFunc(@x,@y)
...
Рейтинг: 0 / 0
FUNCTION как возвратить 2 переменные?
    #33899965
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
giviС формой то все это хорошо - а когда формы нет???

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
luResult = CREATEOBJECT("Custom")

luResult.AddProperty("Res1",  1 )
luResult.AddProperty("Res2",  2 )

luResult.AddProperty("aRes(2)")
luResult.aRes[ 1 ] =  3 
luResult.aRes[ 2 ] =  4 

RETURN luResult
ENDFUNC

Бывает, что и так выкручивались.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / FUNCTION как возвратить 2 переменные?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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