Функции:
Click on Button - Активизация окна;
RightClick on Button - Закрытие окна;
RightClick on ToolBar - Скрытие всех окон (эмуляция нажатия "Ctrl+Alt+Shift") для выхода из режима
- нажатие любой клавиши на клавиатуре или мыши.
Для использования:
Меню Tools / Options...
Закладка File Locations
Выбираем Startup Program
Пишем "путьWindowsBar.prg"
Нажимаем Set As Default
Перезапускаем FoxPro
Очень удобная штука. С удовольствием пользуюсь. Сам хотел такую сделать.
Мои соображения:
Я бы немного подправил метод Rebuild
4 строка
nCount=WCHILD('')
заменить на
nCount=WCHILD('SCREEN')
10 строка
cWin=WCHILD('',i)
заменить на
cWin=WCHILD('SCREEN',i)
Без этого у меня WindowsBar не работал с моими формами, а работал только с системными.
И еще я бы добавить ToolTipText для каждой кнопки, с полным заголовком формы.
Потому, что иногда весь заголовок не входит, а его хочется посмотреть. Для этого можно в метод
Init кнопки добавить
this.ToolTipText=WTITLE(cWin)
Евгений
26.10.02 15:49:52
Вещь хорошая,
правда при закрытии последнего окна ,соответствующая ему кнопка не удаляется.
ChAO
27.10.02 17:47:11
ОК, всё исправил. Спасибо.
Stanislav Dmitriev
06.11.02 14:34:29
Можно еще можно в wb_button.MouseUp добавить
DO CASE
CASE nButton=2 && Нажата правая кнопка
loMenu=this
DEFINE POPUP shortcut SHORTCUT RELATIVE FROM nXCoord,MCOL()
DEFINE BAR 1 OF shortcut PROMPT "Свернуть все"
DEFINE BAR 2 OF shortcut PROMPT "Закрыть все"
DEFINE BAR 3 OF shortcut PROMPT "\--"
DEFINE BAR 4 OF shortcut PROMPT "Закрыть"
ON SELECTION BAR 1 OF shortcut ;
loMenu.parent.MinimiseAll()
ON SELECTION BAR 2 OF shortcut ;
loMenu.parent.CloseAll()
ON SELECTION BAR 4 OF shortcut ;
loMenu.parent.DelWin(loMenu.wName)
ACTIVATE POPUP shortcut
ENDCASE
Методы MinimiseAll, CloseAll запрограммировать в классе WindowsBar
Будет более интуитивно понятно.
Aijik
27.12.02 10:46:48
Очень полезное решение!
Имею 2 предложения:
1. В VFP 7 не видит окна Document View (а именно оно ИМХО наиболее потребное в VFP7). Если я
правильно понял, Вы обрабатываете окна, дочерние от SCREEN. Так вот дело как раз в том, что
Document View не является (видимо) дочерним окном SCREEN, т.к. ?WCHILD("SCREEN") не изменяется при
открытии/закрытии окна. Что можно еще подкрутить, чтобы и это окно обрабатывалось WindowsBar'ом
так же, как и все остальные.
2. Нельзя ли сделать, как в том же TaskBar, автоматическое изменение размеров чекбоксов
WindowsBar'а при выходе новых за пределы Фоксовского основного окна (при большом количестве
кнопок). Потому что все новые чекбоксы рисуются за правым краем окна и, естесственно, недосягаемы :(
Aijik
27.12.02 12:36:36
Очень полезное решение!
Имею 2 предложения:
1. В VFP 7 не видит окна Document View (а именно оно ИМХО наиболее потребное в VFP7). Если я
правильно понял, Вы обрабатываете окна, дочерние от SCREEN. Так вот дело как раз в том, что
Document View не является (видимо) дочерним окном SCREEN, т.к. ?WCHILD("SCREEN") не изменяется при
открытии/закрытии окна. Что можно еще подкрутить, чтобы и это окно обрабатывалось WindowsBar'ом
так же, как и все остальные.
2. Нельзя ли сделать, как в том же TaskBar, автоматическое изменение размеров чекбоксов
WindowsBar'а при выходе новых за пределы Фоксовского основного окна (при большом количестве
кнопок). Потому что все новые чекбоксы рисуются за правым краем окна и, естесственно, недосягаемы :(
Aijik
27.12.02 12:36:46
Очень полезное решение!
Имею 2 предложения:
1. В VFP 7 не видит окна Document View (а именно оно ИМХО наиболее потребное в VFP7). Если я
правильно понял, Вы обрабатываете окна, дочерние от SCREEN. Так вот дело как раз в том, что
Document View не является (видимо) дочерним окном SCREEN, т.к. ?WCHILD("SCREEN") не изменяется при
открытии/закрытии окна. Что можно еще подкрутить, чтобы и это окно обрабатывалось WindowsBar'ом
так же, как и все остальные.
2. Нельзя ли сделать, как в том же TaskBar, автоматическое изменение размеров чекбоксов
WindowsBar'а при выходе новых за пределы Фоксовского основного окна (при большом количестве
кнопок). Потому что все новые чекбоксы рисуются за правым краем окна и, естесственно, недосягаемы :(
Вадим
05.05.04 13:32:15
Очень хорошая вещь.
В VFP8 работает без проблем.
Замечание:
Ставлю в проект, компилирую exe-шник, на панели только одна кнопка, соответсвующая последнему
запущенному окну. Жму на нее - с каждым нажатием активизируется одно из окон - по очереди все -
при этом надпись на кнопке не меняется - соотв.последнему запущенному окну.
Вадим
05.05.04 13:32:55
Очень хорошая вещь.
В VFP8 работает без проблем.
Замечание:
Ставлю в проект, компилирую exe-шник, на панели только одна кнопка, соответсвующая последнему
запущенному окну. Жму на нее - с каждым нажатием активизируется одно из окон - по очереди все -
при этом надпись на кнопке не меняется - соотв.последнему запущенному окну.