powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ActiveX MSComctlLib.Toolbar не работает на модальной форме
6 сообщений из 6, страница 1 из 1
ActiveX MSComctlLib.Toolbar не работает на модальной форме
    #35554904
xmapa1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую 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
ActiveX MSComctlLib.Toolbar не работает на модальной форме
    #35555127
12345зайчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
ActiveX MSComctlLib.Toolbar не работает на модальной форме
    #35555143
12345зайчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
метод 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
ActiveX MSComctlLib.Toolbar не работает на модальной форме
    #35555159
12345зайчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2xmapa1

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

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


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