powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / AddObject
6 сообщений из 6, страница 1 из 1
AddObject
    #35254163
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НАрод,
Есть проблема, при добавлении на форму кнопок в N-рядов, и используя ADDOBJECT и скроллинг на форме, при прокрутке скролинга кнопки не прорисовываются, но есди кликнуть в предполагаемое место мышью, она (кнопка) рисуется.. Как сделать так чтобы неизвестное количество кнопок четкопрорисовывались на форме, когда прокручиваем обьекты на форме при помощи скролинга?
Все спасибою
...
Рейтинг: 0 / 0
AddObject
    #35254270
нужно ScrollBars на форме установить в 3
...
Рейтинг: 0 / 0
AddObject
    #35254293
Код: 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.
PUBLIC ofrm11

ofrm11=NEWOBJECT("frm11")
ofrm11.Show()
RETURN


DEFINE CLASS frm11 AS form


	ScrollBars =  3 
	Name = "Frm11"


	PROCEDURE Init
		lnCntrl =  1 
		for j= 0  to  5 
			for i= 1  to  10 
				lnCntrl = lnCntrl +  1 
				this.AddObject('CommandButton' + ltrim(str(lnCntrl)), 'CommandButton')
				loButton = getpem(this, 'CommandButton' + ltrim(str(lnCntrl)))
				with loButton
					.top = i* 40 
					.left = j *  100 
					.height=  20 
					.visible = .t.
				endwith 
			endfor 
		endfor
	ENDPROC


ENDDEFINE
...
Рейтинг: 0 / 0
AddObject
    #35254488
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
12345вышелзайчикпогулять
Код: 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.
PUBLIC ofrm11

ofrm11=NEWOBJECT("frm11")
ofrm11.Show()
RETURN


DEFINE CLASS frm11 AS form


	ScrollBars =  3 
	Name = "Frm11"


	PROCEDURE Init
		lnCntrl =  1 
		for j= 0  to  5 
			for i= 1  to  10 
				lnCntrl = lnCntrl +  1 
				this.AddObject('CommandButton' + ltrim(str(lnCntrl)), 'CommandButton')
				loButton = getpem(this, 'CommandButton' + ltrim(str(lnCntrl)))
				with loButton
					.top = i* 40 
					.left = j *  100 
					.height=  20 
					.visible = .t.
				endwith 
			endfor 
		endfor
	ENDPROC


ENDDEFINE

Я скорее всего не совсем так сформулировал свой вопрос. У меня кнопки появляются все - с этим изначально нормально. Я их выкладываю из древидной структуры, и конечно там есть кнопка Back , которая вырисовывает кнопки структурой выше и вот если в этот момент предыдущая структура имеет больше кнопок чем те которые умещаются на видимой части формы, и когда прокручиваю скроллинг вниз, показывается кусок чернонорго экрана, см. картинку:
Как от этого избавиться?
Кнопки я закидываю при помощи:
Код: 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.
PARAMETERS xParentKey
SELECT * FROM Menu_list ;
	WHERE ALLTRIM(parent) == xParentKey ;
	ORDER BY TEXT ;
INTO CURSOR (ThisForm.MenuCursor)

	j = 0
	yOffSet = 300
	xOffset = 0
	i = 0

DO WHILE !EOF()
	i = i + 1
	j = j + 1
	xOffset = xOffset + 108

	IF j > 3
		J = 0
		yOffSet = yOffSet + 74
		xOffset = 0
	ENDIF	

	ThisForm.AddObject('cmdCmndBtn'+Alltrim(STR(i)),'CommandMenu',ALLTRIM(Text),Key, parent, xOffset, yOffSet, if_Child)
	ExecString = 'ThisForm.cmdCmndBtn'+Alltrim(STR(i))+'.Visible = .T.'
	&ExecString
	SELECT (ThisForm.MenuCursor)
	SKIP
ENDDO
This.Resize


Код: plaintext
Код: plaintext
...
Рейтинг: 0 / 0
AddObject
    #35254492
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valerii 12345вышелзайчикпогулять
Код: 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.
PUBLIC ofrm11

ofrm11=NEWOBJECT("frm11")
ofrm11.Show()
RETURN


DEFINE CLASS frm11 AS form


	ScrollBars =  3 
	Name = "Frm11"


	PROCEDURE Init
		lnCntrl =  1 
		for j= 0  to  5 
			for i= 1  to  10 
				lnCntrl = lnCntrl +  1 
				this.AddObject('CommandButton' + ltrim(str(lnCntrl)), 'CommandButton')
				loButton = getpem(this, 'CommandButton' + ltrim(str(lnCntrl)))
				with loButton
					.top = i* 40 
					.left = j *  100 
					.height=  20 
					.visible = .t.
				endwith 
			endfor 
		endfor
	ENDPROC


ENDDEFINE

Я скорее всего не совсем так сформулировал свой вопрос. У меня кнопки появляются все - с этим изначально нормально. Я их выкладываю из древидной структуры, и конечно там есть кнопка Back , которая вырисовывает кнопки структурой выше и вот если в этот момент предыдущая структура имеет больше кнопок чем те которые умещаются на видимой части формы, и когда прокручиваю скроллинг вниз, показывается кусок чернонорго экрана, см. картинку:
Как от этого избавиться?
Кнопки я закидываю при помощи:
Код: 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.
PARAMETERS xParentKey
SELECT * FROM Menu_list ;
	WHERE ALLTRIM(parent) == xParentKey ;
	ORDER BY TEXT ;
INTO CURSOR (ThisForm.MenuCursor)

	j = 0
	yOffSet = 300
	xOffset = 0
	i = 0

DO WHILE !EOF()
	i = i + 1
	j = j + 1
	xOffset = xOffset + 108

	IF j > 3
		J = 0
		yOffSet = yOffSet + 74
		xOffset = 0
	ENDIF	

	ThisForm.AddObject('cmdCmndBtn'+Alltrim(STR(i)),'CommandMenu',ALLTRIM(Text),Key, parent, xOffset, yOffSet, if_Child)
	ExecString = 'ThisForm.cmdCmndBtn'+Alltrim(STR(i))+'.Visible = .T.'
	&ExecString
	SELECT (ThisForm.MenuCursor)
	SKIP
ENDDO
This.Resize

Код: plaintext
Код: plaintext


Забыл, у меня кнопка - визуальный класс - с своими методами и свойствами - они в параметрах и передаются...
...
Рейтинг: 0 / 0
AddObject
    #35254509
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй оценить максимально возможный размер формы и положи на форму прозрачный Shape нужных (максимальных) размеров. А потом уже накидывай кнопки. Кнопки можешь добавлять/удалять, но граничный Shape должен всегда оставаться на форме.

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


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