powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вернуть массив из формы
13 сообщений из 13, страница 1 из 1
Вернуть массив из формы
    #34575663
вызов формы:
Код: plaintext
1.
2.
DIMENSION MyArray( 10 ,  1 )
DO FORM MyForm WITH TO MyArray

метод Init:
Код: plaintext
1.
THIS.AddProperty("aArray[10, 1]")

в форме заполняю это свойство типа "массив"

и метод Unload:
Код: plaintext
1.
RETURN THIS.aArray

и из формы возвращается только одно первое значение, которое стоит в THISFORM.aArray
в итоге массив MyArray полностью заполнен одним элементом
??????
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34575753
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
посмотрите пример

Код: 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.
40.
41.
42.
43.
44.
PUBLIC oform1

oform1=NEWOBJECT("form1")
oform1.Show( 1 )

activate screen 
for i= 1  to alen(oform1.tt, 1 )
	? oform1.tt(i, 1 )
	?? oform1.tt(i, 2 )
endfor

oform1.release()
return 


DEFINE CLASS form1 AS form


	DoCreate = .T.
	Caption = "Form1"
	Name = "Form1"
	DIMENSION tt[ 1 , 2 ]


	ADD OBJECT command1 AS commandbutton WITH ;
		Top =  108 , ;
		Left =  144 , ;
		Height =  27 , ;
		Width =  84 , ;
		Caption = "Command1", ;
		Name = "Command1"


	PROCEDURE command1.Click
		for i= 1  to  10 
			dimension thisform.tt(i, 2 )
			thisform.tt(i, 1 ) = i
			thisform.tt(i, 2 ) = i* 100 
		endfor
		thisform.hide()
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34575930
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34575960
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 КонецЦикла

при заинтересованности
покажу как работать с немодальными формами

через такой трюк

Код: plaintext
bindevent(thisform.oLinkedForm,'Unload',thisform,'Бубен')
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34576790
2ВладимирМ

ну я ещё тот извращенец и буду сидеть до последнего, чтобы сделать "именно так", тем более что если вот "именно так" и не получается.... тут уже азарт какой-то возникает....
мне просто и стало интересно почему DO FORM MyFrom TO "Объект" у меня работает, а вот DO FORM MyForm TO "Массив" не получается (весь массив заполняется одним значением)... Хотя на первый взгляд вроде бы всё аналогично..... Правда когда я делал через объект, то я точно знал сколько у меня должно быть значений и следовательно сколько переменных объявлять надо, а вот когда через массив, мне ещё не известно сколько в итоге в нём будет значений....

вобщем я в итоге передал в форму просто имя массива.....

2alex11100

ну а почему бы и нет?
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34577033
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Массив - это все-таки очень специфическая переменная. Поэтому обращаться с ним надо особо осторожно.

По правилам работы с массивом, если явно не указывается номер элемента, то всегда возвращается первый элемент массива. А ведь в команде RETURN Вы не указываете номер элемента.

По поводу объекта, Вы не обратили внимания на передачу массива через объект. Т.е. в самом объекте формируется свойство типа массив. Не набор свойств, а именно одно свойство.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
************* UNLOAD формы
LOCAL loCustom
loCustom = CreateObject("Custom")
loCustom.AddProperty("aArray[10,1]")
=ACOPY(THIS.aArray, m.loCustom.aArray)

RETURN loCustom


************* Вызов формы

LOCAL loCustom
loCustom = NULL

DO FORM MyForm WITH ... TO m.loCustom

DIMENSION MyArray( 10 , 1 )
=ACOPY(m.loCustom.aArray, m.MyArray)
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34578034
красиво
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34580159
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
показываю принцип
здесь показан механиз обмена данными между объектами
и отслеживание событий

можете прикурутить массивы к формам
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34580163
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
др.примеры от др.авторов
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34580167
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34580170
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34580925
а что за формат у returnvalwithbind и statusbar?
...
Рейтинг: 0 / 0
Вернуть массив из формы
    #34581000
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переименуйте в прг и запустите

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


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