FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9173
Вход
WindowsBar

ToolBar, для быстрого доступа к открытым окнам VFP (аналог Windows'овского TaskBar).


 
Прислал: ChAO   Категория: Инструменты разработчика


WindowsBar

Создает кнопки с заголовками всех открытых окон.

Функции:
Click on Button - Активизация окна;
RightClick on Button - Закрытие окна;
RightClick on ToolBar - Скрытие всех окон (эмуляция нажатия "Ctrl+Alt+Shift") для выхода из режима - нажатие любой клавиши на клавиатуре или мыши.

Для использования:
Меню Tools / Options...
Закладка File Locations
Выбираем Startup Program
Пишем "путьWindowsBar.prg"
Нажимаем Set As Default
Перезапускаем FoxPro

Буду рад замечаниям.
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (5.036) Вложение [2.3]kb
Дополнения пользователей
WindowsBar
[+][?]
Stanislav Dmitriev
26.10.02 13:52:29

Очень удобная штука. С удовольствием пользуюсь. Сам хотел такую сделать.

Мои соображения:
Я бы немного подправил метод 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-шник, на панели только одна кнопка, соответсвующая последнему
запущенному окну. Жму на нее - с каждым нажатием активизируется одно из окон  - по очереди все -
при этом надпись на кнопке не меняется - соотв.последнему запущенному окну.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика