powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Arrays v formah
13 сообщений из 13, страница 1 из 1
Arrays v formah
    #33685757
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jestj takaja problemma. V odnoj forme sozdani glovalnije massivi. Nuzhno poluchitj k nim dostup iz drugoj formi. Kod vizova iz formi, kotoraja soderzhit massivi vtoroj formi:

DO FORM ind_dep_incomes_add.scx WITH THISFORM.mode, thisform

Kod poluchenija parametrov i obraschenija k massivam v vizvannoj forme:

PARAMETERS nNumber, nHandler
THIS.mode=nNumber
This.calling_form=nHandler

This.Eq_sales.Value=THIS.calling_form.incomes_arr[2]

massivi objavleni bili s pomoschju form->new property. Jesli ih objavitj v init formi kak Public array incomes_arr[x], to dostupa k nim net vobsche. A jesli s pomoschju menju, to ja poluchaju vmesto nuzhnih mne cifrovih znachenij tolko .F. dlja kazhdogo elementa massiva. Kak poluchitj znachenija elementov massiva?
...
Рейтинг: 0 / 0
Arrays v formah
    #33685927
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри следующий код:
Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
of_spr = CREATEOBJECT("mf1")
of_spr.Show( 1 )

DEFINE CLASS mf1 AS form

	Top =  0 
	Left =  0 
	Height =  74 
	Width =  256 
	DoCreate = .T.
	Caption = "w_f1"
	Name = "mf1"
	DIMENSION m_array_1[ 2 ]

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

	ADD OBJECT text1 AS textbox WITH ;
		Height =  23 , ;
		Left =  24 , ;
		Top =  12 , ;
		Width =  100 , ;
		Name = "Text1"

	ADD OBJECT text2 AS textbox WITH ;
		Height =  23 , ;
		Left =  24 , ;
		Top =  36 , ;
		Width =  100 , ;
		Name = "Text2"

	PROCEDURE Init
		THIS.M_array_1[ 1 ] =  15 
		THIS.M_array_1[ 2 ] =  50 

		THIS.Text1.Value = THIS.M_array_1[ 1 ]
		THIS.Text2.Value = THIS.M_array_1[ 2 ]
	ENDPROC


	PROCEDURE command1.Click
		DO FORM w_f2
	ENDPROC


ENDDEFINE
**************************************************
**************************************************
DEFINE CLASS w_f2 AS form


	Height =  83 
	Width =  173 
	DoCreate = .T.
	AutoCenter = .T.
	Caption = "w_f2"
	Name = "w_f2"


	ADD OBJECT text1 AS textbox WITH ;
		Height =  23 , ;
		Left =  24 , ;
		Top =  12 , ;
		Width =  100 , ;
		Name = "Text1"


	ADD OBJECT text2 AS textbox WITH ;
		Height =  23 , ;
		Left =  24 , ;
		Top =  36 , ;
		Width =  100 , ;
		Name = "Text2"


	PROCEDURE Init
		IF TYPE("_VFP.Forms('mf1')")="O" 
		  THIS.Text1.Value = _VFP.Forms('mf1').M_array_1[ 1 ]
		  THIS.Text2.Value = _VFP.Forms('mf1').M_array_1[ 2 ]
		ELSE
		  THIS.Text1.Value =  0 
		  THIS.Text2.Value =  0 
		ENDIF
	ENDPROC


ENDDEFINE
**************************************************
Заметим в первой форме объявляется массив m_array_1[2] , в методе INIT первой формы идет его инициализация и присвоение TEXTBOX -ам его значений. Потом вызывается из певой формы вторая и там используется этот массив (смотри метод INIT второй формы). Если тебя это устраивает, то применяй.
...
Рейтинг: 0 / 0
Arrays v formah
    #33685967
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to zhe samoje, zdesj, kzhetsja, sobaka zarita v tom, chto massiv objavlen, ja plzujusj Visual FOXPRO 7, sledjusjchim makarom Forms->New Property->Name , i v pole name ja vpisal incomes_arr(4), v predelah formi rabotajet, a dlja drugih form nachinajutsja problemmi s oblastju dejstvija. Mozh podskazhesh kak dobratsja naprjamuju do koda formi v VFP?
...
Рейтинг: 0 / 0
Arrays v formah
    #33686024
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и не понял, ты во второй форме увидел значения взятые из массива (см. рисунок)??? У меня VFP80SP1.
>Mozh podskazhesh kak dobratsja naprjamuju do koda formi v VFP?
Когда открыта форма, то File/Save as Class...
...
Рейтинг: 0 / 0
Arrays v formah
    #33686050
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Net, sam massiv vizhu, no vmesto znachenij krome .F. bolshe nichego ne mogu poluchitj.
Menja interesujet kak ti smog dobratjsa do koda, gde opredeljajetsja sama forma. V smisle vot do etogo:
DEFINE CLASS mf1 AS form

Top = 0
Left = 0
Height = 74
Width = 256
DoCreate = .T.
Caption = "w_f1"
Name = "mf1"
DIMENSION m_array_1[2]
...
Рейтинг: 0 / 0
Arrays v formah
    #33686072
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dj_ravenNet, sam massiv vizhu, no vmesto znachenij krome .F. bolshe nichego ne mogu poluchitj.
Menja interesujet kak ti smog dobratjsa do koda, gde opredeljajetsja sama forma. V smisle vot do etogo:
DEFINE CLASS mf1 AS form

Top = 0
Left = 0
Height = 74
Width = 256
DoCreate = .T.
Caption = "w_f1"
Name = "mf1"
DIMENSION m_array_1[2]
Я же тебе ответил: Когда открыта форма, то File/Save as Class...
Записываешь свою форму в библиотеку File/Save as Class... Затем открываем библиотеку через Tools\Class Browser . В нем указываешь форму и смотришь код своей формы.
...
Рейтинг: 0 / 0
Arrays v formah
    #33686091
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hm, poluchilosj chto v kode vsje v porjadke :( :
DEFINE CLASS ind_dep_add_edit_main AS form


Top = 0
Left = 0
Height = 240
Width = 332
DoCreate = .T.
Caption = "Ïðîèçâîäñòâåííûé îòäåë, óïðàâëåíèå äàííûìè"
Name = "ind_dep_add_edit_main"
calling_form = .F.
mode = .F.
other_income = .F.
other_manuf_charge = .F.
other_inv_mean = .F.
other_firm_charg = .F.
DIMENSION incomes_arr[4]

interesno togda v chem problemma.
...
Рейтинг: 0 / 0
Arrays v formah
    #33686105
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть в версии FOX-а. У тебя VFP70, у меня VFP80.
...
Рейтинг: 0 / 0
Arrays v formah
    #33686163
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vpolne vozmozhno. No na rabote zastavljajut jeju polzovatsja. bil bi vibor, ja bi na svojem ljubimom C++ pisal, i ne bilo bi nikakih problem :)
...
Рейтинг: 0 / 0
Arrays v formah
    #33686186
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dj_ravenvpolne vozmozhno. No na rabote zastavljajut jeju polzovatsja. bil bi vibor, ja bi na svojem ljubimom C++ pisal, i ne bilo bi nikakih problem :)Кто тебе мешает создать программу которая работала бы на C++ и подключаешься к ней из FOX-а. Об этом на работе и не узнают.
...
Рейтинг: 0 / 0
Arrays v formah
    #33686320
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Problemmu reshil, no takogo gljuka ja nikogda esche ne videl. viziajuschaja forma:
DO FORM ind_dep_incomes_add.scx WITH THISFORM.mode, thisform
esli kak parametr ne peredatj thisform, rabotatj ne budet.
inicializacija massiva v vizivajuschej forme:
FOR x=1 TO 4
incomes_arr[x]=1
endfor
A teperj to, chto ja nikak ne mogu ponjatj (procedura init vizvannoj formi):
PARAMETERS nNumber, nHandler
THIS.mode=nNumber
This.call_form=nHandler

This.Eq_sales.Value=incomes_arr[2] && rabotajet
this.repair_works.value=THIS.call_form.incomes_arr[3] &&ne rabotajet :)

pri popitke obratitsja ne k massivu a k obichnoj peremennoj vsje s tochnostju naoborot :)
...
Рейтинг: 0 / 0
Arrays v formah
    #33686469
dj_raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hm, a teperj, posle tjrh restartov foxpro, on u menja s oshibkami viletal, vsje vstalo na svoi mesta :)
...
Рейтинг: 0 / 0
Arrays v formah
    #33699995
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi dj_raven!

> inicializacija massiva v vizivajuschej forme:
> FOR x=1 TO 4
> incomes_arr[x]=1
> endfor

Тут инициализируется вовсе не свойство-массив, а банальный
массив-переменная.
Надо бы ThisForm.incomes_arr[m.lnIndex] =

Кроме того если размер массива не постоянный, то перед заполнением следует
командой DIMENSION задать точный размер (не имеет значения, если при
определении свойства ты задал совсем другой размер).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Arrays v formah
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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