Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Часто спрашивают - как удалить VFP ToolBars?  [new]
SergeyPl
Member

Откуда: Харьков
Сообщений: 287
Вот пример кода для выключения/включения фоксовских ToolBars:
*
#DEFINE TB_FORMDESIGNER_LOC  "Form Designer"
#DEFINE TB_STANDARD_LOC      "Standard"
#DEFINE TB_LAYOUT_LOC        "Layout"
#DEFINE TB_QUERY_LOC		 "Query Designer"
#DEFINE TB_VIEWDESIGNER_LOC  "View Designer"
#DEFINE TB_COLORPALETTE_LOC  "Color Palette"
#DEFINE TB_FORMCONTROLS_LOC  "Form Controls"
#DEFINE TB_DATADESIGNER_LOC  "Database Designer"
#DEFINE TB_REPODESIGNER_LOC  "Report Designer"
#DEFINE TB_REPOCONTROLS_LOC  "Report Controls"
#DEFINE TB_PRINTPREVIEW_LOC  "Print Preview"
#DEFINE WIN_COMMAND_LOC		 "Command"			&& Command Window
*
function VisualFoxProToolBars
	lparameter logLocPrmToolBarsShow
	local intLocCount,arrLocVfpToolBars[12,2]
*
	arrLocVfpToolBars[1,1] = TB_FORMDESIGNER_LOC
	arrLocVfpToolBars[2,1] = TB_STANDARD_LOC
	arrLocVfpToolBars[2,2] = .T.
	arrLocVfpToolBars[3,1] = TB_LAYOUT_LOC
	arrLocVfpToolBars[4,1] = TB_QUERY_LOC
	arrLocVfpToolBars[5,1] = TB_VIEWDESIGNER_LOC
	arrLocVfpToolBars[6,1] = TB_COLORPALETTE_LOC
	arrLocVfpToolBars[7,1] = TB_FORMCONTROLS_LOC
	arrLocVfpToolBars[8,1] = TB_DATADESIGNER_LOC
	arrLocVfpToolBars[9,1] = TB_REPODESIGNER_LOC
	arrLocVfpToolBars[10,1] = TB_REPOCONTROLS_LOC
	arrLocVfpToolBars[11,1] = TB_PRINTPREVIEW_LOC
	arrLocVfpToolBars[12,1] = WIN_COMMAND_LOC
	arrLocVfpToolBars[12,2] = .T.
	if logLocPrmToolBarsShow
		for intLocCount = 1 to alen(arrLocVfpToolBars,1)
			if arrLocVfpToolBars[intLocCount,2] .and. wexist(arrLocVfpToolBars[intLocCount,1])
				show window (arrLocVfpToolBars[intLocCount,1])
	  		endif
		endfor
	else
		if IsRunTimeVersion()	&& Äëÿ EXE ìîäóëÿ
			for intLocCount = 1 to alen(arrLocVfpToolBars, 1)
				if wexist(arrLocVfpToolBars[intLocCount,1])
					release window (arrLocVfpToolBars[intLocCount,1])
				endif
			endfor
		else
			for intLocCount = 1 to alen(arrLocVfpToolBars, 1)
				if wvisible(arrLocVfpToolBars[intLocCount,1])
					hide window (arrLocVfpToolBars[intLocCount,1])
				endif
			endfor
		endif
	endif
return
*
function IsRunTimeVersion
return iif(version(2) = 0,.T.,.F.)
*
2 окт 04, 12:46    [1003932]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
akrisiun
Guest
v: function IsRunTimeVersion
return iif(version(2) = 0,.T.,.F.)

replace with :

return (version(2) = 0)
5 окт 04, 10:28    [1008445]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
То, на что указал akrisiun - это вообще-то мелочь. Просто личные предпочтения программиста. Но есть более серьезные замечания:

1) В FoxPro существуют локализованные Run-Time библиотеки. Например, русскоязычные. Это значит, что в готовом EXE имена ToolBar могут быть переведены на русский язык и использование англоязычных названий не даст никакого эффекта. Просто не будут найдены соответствующие ToolBar

2) При восстановлении ToolBar Вы исходите из предположения, что восставновить надо только строго фиксированные ToolBar. Почему собственно? Логичнее было бы при закрытии запоминать список открытых ToolBar и затем именно их и восстанавливать

3) Строго говоря, все это совсем не нужно. Дело в том, что имя, размер и положение активных ToolBar запоминается в ресурсном файле FoxUser.dbf (fpt).

Поэтому для готового EXE все эти выкрутасы вообще не нужны, поскольку обычно никто не тянет клиенту тот FoxUser.dbf, который был на этапе разработки. Часто даже вообще отключают использование ресурсного файла, поскольку польза от него в готовом EXE весьма относительна.

Ну, а на этапе отладки можно использовать этот ресурсный файл, для получения списка ранее открытых ToolBar. Разумеется, перед подавлением ToolBar отключая ресурсный файл.
5 окт 04, 10:41    [1008489]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
SergeyPl
Member

Откуда: Харьков
Сообщений: 287
To All
Набросились :) Значит, это кому-то нужно :)
TO ВладимирМ
Я привел конкретное решение, которое устраивает нас.
Надеюсь, что программисты понимают,
что любое решение необходимо адаптировать под
конкретную разработку, окружение, настройки и т.д.
А вообще, именно в обсуждении и решаются конкретные
проблемы. Так что, всем искренне СПАСИБО !!!
5 окт 04, 12:49    [1009106]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
Анатолий Широков
Member

Откуда: Санкт-Петербург
Сообщений: 1319
2 SergeyPl

Это же решение можно найти в Tastrade, с точностью до названий переменных - видимо, основа была взята оттуда или я ошибаюсь?
5 окт 04, 13:48    [1009372]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
SergeyPl
Member

Откуда: Харьков
Сообщений: 287
Анатолий Широков
2 SergeyPl

Это же решение можно найти в Tastrade, с точностью до названий переменных - видимо, основа была взята оттуда или я ошибаюсь?

Конечно ! Но не все "хотят это найти" :)
5 окт 04, 14:28    [1009596]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
Dushes
Member

Откуда: Кострома
Сообщений: 158
Вот я тут подумал, а правильно ли я делал до сих пор....

Почему то никогда не возникало у меня желания использовать родное фоксовое окно в качестве каркаса своего приложения, т.е. есго системное меню, его панели инструментов... Всегда делал следующее: создавал родительскую форму AlwayOnTop, подвешивал на него свое меню, делал свои панели инструментов в нем, свой MDI, соответсвенно в *.prg делал чтото типа do form <main form> - clear events, в родительской форме в обработке destroy делал clear events ну и какбы не мучался.......Хочу спросить, может быть данный подход в чем-то неправилен скажем с точки использования ресурсов самого фокспро, или же я теряю какие-то преимущества .....
Вообщем, жду высказываний....

С уважением
duШes
....return ThisForm.exGrid1.p_oColumns("COLUMN1").M_AddHeader("header4",4)
6 окт 04, 09:24    [1011275]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Делать приложение на базе As Top-Level форм никто не запрещает. Просто для этого требуется больше усилий. Больше придется программировать.

Честно-говоря, я не вижу в построении всего приложения на базе As Top-Level форм особого смысла.

Как элемент интерфейса, отдельные As Top-Level формы вполне на своем месте (например, для ввода пароля). Но если делать все приложение на базе As Top-Level форм, то это ведь по сути означает создание собственного _SCREEN-окна. А смысл? Ведь он и так уже есть. Исключительно вопрос личных предпочтений.
6 окт 04, 10:34    [1011517]     Ответить | Цитировать Сообщить модератору
 Re: Часто спрашивают - как удалить VFP ToolBars?  [new]
SergeyPl
Member

Откуда: Харьков
Сообщений: 287
Поддерживаю ВладимирМ.
Я у себя для EXE-приложения полностью использую возможности главного окна VFP и его системного меню. Оставляю нужные пункты типа File, Edit,Window с сохранением системных имен и добавляю свои пункты, где нужно.
6 окт 04, 16:58    [1013748]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить