Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вернуть массив из формы / 13 сообщений из 13, страница 1 из 1
05.06.2007, 16:39
    #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
05.06.2007, 17:04
    #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
05.06.2007, 17:53
    #34575930
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть массив из формы
...
Рейтинг: 0 / 0
05.06.2007, 18:02
    #34575960
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть массив из формы
2 КонецЦикла

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

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

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

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

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

2alex11100

ну а почему бы и нет?
...
Рейтинг: 0 / 0
06.06.2007, 10:46
    #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
06.06.2007, 15:18
    #34578034
Вернуть массив из формы
красиво
...
Рейтинг: 0 / 0
07.06.2007, 10:53
    #34580159
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть массив из формы
показываю принцип
здесь показан механиз обмена данными между объектами
и отслеживание событий

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

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


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