powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ох уж этот тулбар
9 сообщений из 9, страница 1 из 1
Ох уж этот тулбар
    #32248714
Aries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот перешел на 8-ку (больно понравилась). И решил отказаться от актив иксовских тулбаров в пользу фоксовских.
Но вот меня ждет разочарование.
Проблема вот в чем
Есть класс тулбара в нем пропети ShowWindow=1
Есть форма. Вней есть проперти oWin=.null.
Пропети формы ShowWindow=2
Далее в методе Инит такой код
**INIT**********************************
THISFORM.oWin=CreateObject("МойТулБар")
THISFORM.oWin.Show()
THISFORM.oWin.Dock(0)
**************************************
И тулбар создается в основном окне фокса а не в нужном мне окне
Как я понимаю тулбар создается только в активном окне.
Т.е я переместил код в метод Show
но и это не помогло
помогает только если на форме присутствуют какие либо объекты и если перед созданием тулбара в методе Show дать им фокус
*SHOW *******************
THISFORM.ЛюбойОбъект.SetFoces
THISFORM.oWin=CreateObject("МойТулБар")
THISFORM.oWin.Show()
THISFORM.oWin.Dock(0)
*********************************
А что делать если на форме нет ни одного обекта (мой случай)
Как запихать тулбар в нужное мне окно
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248724
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это не проблема:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
myAsTopLevelForm::Activate

if type('thisform.oWin') # "O' .or. isnull(thisform.oWin)
    thisform.oWin = createobject('myToolBar')
    with thisform.oWin
        .Dock( 0 )
        .Visible = .t.
    endwith
endif
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248774
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот перешел на 8-ку (больно понравилась). И решил отказаться от актив иксовских тулбаров в пользу фоксовских.

Можно поинтересоваться, почему именно восьмерка сподвигла Вас на этот шаг? Ничего принципиально нового в движке тулбаров, насколько мне известно, в ней привнесено не было...
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248835
Aries
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Впринципе можна конечно использовать этот код, Анатолий. Но как то мне он не нравится. Хотя чуство такое что так оно у меня и будет жить.

RE: Aijik
Чем сподвигло. Да наверное в большинстве более графическим фейсом. Подсветка строки. Набухающие кнопки. Редактируемый курсор. Обработка ошибок. Мелочь а приятно
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248896
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в принципе про тулбары спрашивал, ну да ладно... :)) Набухающие кнопки были и VFP7... Чего до сих пор не хватает фоксу в этой области (ИМХО) - это невозможность привязать тулбар к обычной (не-toplevel) форме и отсутствие нативного класса а-ля SpeedButton в дельфях. SpeedButton - это кнопка, эмулирущая поведение тулбаровской, т.е. не перетягивающая фокус на себя. Таким образом, реализация интерфейса а-ля 1С с линейкой а-ля-тулбарных кнопок, не перехватывавающих фокус - довольно геморрная задача. Зачем надо? Вспомните бесконечные Grid.SetFocus() в конце метода каждой кнопки... В фоксе, чтобы реализовать 1С'овское чудо, нужны большие извраты (надо либо эмулировать SpeedButton стандартным контролами, либо ActiveX-Toolbar на форму класть)
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248974
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таким образом, реализация интерфейса а-ля 1С с линейкой а-ля-тулбарных кнопок, не перехватывавающих фокус - довольно геморрная задача.
Можно просто написать свой аналогичный контрол и все будет тип-топ.
Я правда все эти рукописные контролы не о чем люблю и обычно просто перевожу фокус на наиболее часто используемый объект.
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32248985
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще один вариант.
Кнопка и сверху прозрачный шейп и отлавливать события на шейпе, при этом меняя visualeffect и цвет кнопки
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32249000
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен. Я ж и говорю - эмулировать стандартными контролами... У меня это сделано с помощью контейнера со стандартным CommandButton с RETURN .F. во When(). Пару извратов с событиями контейнера и практически идентичный тулбаровкой кнопке контрол получился. А через класс Control я тоже пытался выворачивать, но что-то мне в нем сэимулировать не удалось, либо удалось, но реализация чем-то не устроила - не помню уже... В конце концов остановился на паре Container+CommandButton
...
Рейтинг: 0 / 0
Ох уж этот тулбар
    #32249173
pak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А есть гденить в нэте или может у кого инфа по созданию тулбара в фоксе
какие обьекты, классы?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Ох уж этот тулбар
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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