Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ActiveX MSComctlLib.Toolbar не работает на модальной форме / 6 сообщений из 6, страница 1 из 1
23.09.2008, 16:44
    #35554904
xmapa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
Использую ActiveX control ToolBar из MSComctl.ocx.
Добавляю его на форму. Если эту форму затем показать не модально, то все нормально.
Если форма модальная, то она не отображается.
Вот код:

func Test()

publ oForm
oForm = createobj('_Form')
oForm.Show(1) && Форма не отображается
oForm.Show(0) && Все нормально

defi class _ToolBar as OleControl
OleClass = 'MSComctlLib.Toolbar.2'
func Init()
This.BorderStyle = 1
enddef

defi class _Form as Form
add object ToolBar1 as _ToolBar
enddef
...
Рейтинг: 0 / 0
23.09.2008, 18:01
    #35555127
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
ActiveX control ToolBar

это зло

инит формы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* для модальных форм необходимо изменить 
* значение свойства Visible тулбара
* до старта метода show формы,
* т.к. активикс помешает прорисоваться контролам формы
if this.WindowType =  1  and this.oletoolBar.Visible
	this.oletoolBar.Visible = .f.
	this.lOletoolBarVisible = .t.
else
	this.lOletoolBarVisible = this.oletoolBar.Visible
endif
...
Рейтинг: 0 / 0
23.09.2008, 18:03
    #35555143
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
метод gotfocus формы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
with this
	if .lInit and .lOletoolBarVisible and !.oletoolBar.Visible
		* возвращаем значение свойству Visible тулбара
		.oletoolBar.Visible = .t.
		.oletoolBar.obJECT.Enabled = .t.
		.Show()
		* становимся на первый-же доступный контрол
		local loControl
		for each loControl in .controls
			if pemstatus(loControl, 'setfocus',  5 ) and ;
			   pemstatus(loControl, 'visible',  5 )  and ;
			   pemstatus(loControl, 'enabled',  5 )  and ;
			   loControl.visible and loControl.enabled
				loControl.setfocus()
				exit
			endif
		endfor
	endif
	* сбрасываем флаг, если необходимо
	if .lInit
		store .f. to .lInit
	endif
endwith
...
Рейтинг: 0 / 0
23.09.2008, 18:07
    #35555159
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
2xmapa1

Вы связались с ActiveX control ToolBar по незнанию?
или есть необходимость использовать этот активикс?

используя это "зло" Вы столкнетесь еще с рядом проблем -
у активного контрола не будет отрабатывать валид при уходе с него мышью в тулбар
не будет скидываться буфер у буфериз.курсоров в том-же случае
...
Рейтинг: 0 / 0
24.09.2008, 11:34
    #35556232
xmapa1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
Спасибо за помощь, все заработало!
Использовал этот ToolBar лишь для того, чтобы иметь возможность встраивать его в форму,
ну и для получения "привычного" интерфейса.
Про такие "особенности" его поведения не знал, скорее всего вернусь к обычным кнопкам.
Только ToolBar является "Злом" или все компоненты входящие в MSComctlLib, включая, например, TreeView?
...
Рейтинг: 0 / 0
24.09.2008, 15:21
    #35557154
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ActiveX MSComctlLib.Toolbar не работает на модальной форме
ActiveX-компоненты - это все-таки "внешние", по отношению к FoxPro, объекты. Их встраивание в среду FoxPro далеко не всегда проходит гладко. Есть масса проблем. И не все из них решаются. Но с модальными формами, проблемы будут у всех ActiveX-компонент.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ActiveX MSComctlLib.Toolbar не работает на модальной форме / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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