:: Visual Foxpro, Foxpro for DOS
Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Всем добра!

Заявили хотелку - мол, забывваем, какой пункт меню выбрали (расчетов море). В старой программе меню было сделано на основе CommandButton, там можно цветом выделять. При работе со штатным меню многие вещи не сделать (в примеру ВИДИМОСТЬ, а не блокировку пункта меню - это можно сделать только через объектное меню, о котором писал ИК).

Если можно - киньте идеи, или кусок тест-кода (если не затруднит). По работе зашился, эксперименты даже дома некогда проводить.

Не будет идей - нарисую форму, как хотели. Но это выходом не считаю, так, выкрутиться, чтоб проблема не висела.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> И что такое "забывваем, какой пункт меню выбрали"? И что за "обьектное меню" (которого в фоксе нет) ?
"Забывают" (значит меню должно запомнить само) какой факт? Что вчера эту кнопку уже выбирали, или год назад, или никогда не нажимали вообще?

Доб. Я кажется понял: надо вывесить меню, и чтобы некоторые пункты были подсвечены, неважно по какой причине. У меня - универсальная форма (с возможностью единственно возможного выбора из набора пунктов, или выбора нескольких пунктов), форма довольно сложная, сама подбирает свой размер, тип кнопок (Check или группа "радиокнопок", забыл уже как они называются). Управляется через вызов подпрограммы (с простым интерфейсом, типа MESSAGEBOX). На вход ей можно давать:
набор параметрв (пунктов меню),
или одномерный массив (список пунктов, в конце текста через обратный слэш указываю псевдосимволы раскраски),
или многоколончатый массив с условленной структурой начального состояния пунктов, с их, покраской, с ToolTipText-ом



Исправлено 2 раз(а). Последнее : of63, 05.04.18 21:15
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
В штатном меню есть картинки и есть mark - отметки.
"Объектное меню" - это не более чем удобная обёртка над самыми обычными define pad/bar и иже с ними - не проблема сделать самому подобное (для SET MARK OF BAR вообще ничего не надо кроме знания имени подменю и номера пункта).

Впрочем, сама постановка вопроса неочевидна. Отмечать когда? Когда оно выбрано - так оно закрывается обычно при этом моментально Отмечать "уже сделанное" - не в меню это лучше делать. Собственно как и запускать "шаги процесса" - если это нечто многоступенчатое и с взаимозависимостями (пока не посчитали налоги - не считаем зарплату, пока не посчитали з/п не считаем отчисления ну и т.п.), то лучше визуализировать это на форме - уж банальными кнопками там, лейблами или мега-картинкой с отловом кликов на разных её частях - вариантов хватает.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Кстати, картиночки (иконочки 16*16) крайне полезны для меню. Когда операторы работают с прогой интенсивно, или даже ..."в данное меню заходят изредка", то любые вспоможения, дизайн, иконки, тултиптексты - очень упрощают им работу, крайне полезно. ТулТипТексты они может не все догадываются обнаружить, но разные аляпистые иконки они запоминают, и когда расширяешь меню, то они по иконкам находят свой любимый пункт, и нажимают его не читая добавленные пункты, или "не замечают" смену порядка пунктов.
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Саму пометку можно делать через mark. Как указал ИК.
Идея же, отметки в меню, мало что дает, поскольку меню вызвали, нажали, оно свернулось, и не видно с чем работаешь.
Есть похожие задачи, и я реализую через тулбар.
Там все хорошо видно. Это в качестве идеи)))
Управлять видимостью, и марком меню, должен сам объект. Откуда б его не запустили, он все соответствующие моменты отметил.
Можно и картинками порулить)))
Но опять же, свернуто меню. Не видно что и как. Не видно особого смысла.


------------------
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
ry

Сообщений: 2113
Дата регистрации: 24.09.2007
Я иногда использую довольно простой в реализации вариант: некоторую короткую, но полезную информацию вывожу в заголовке окна. Также для этих целей вполне можно приспособить строку статуса. Например, вывести в строку последовательность всех открываемых пунктов меню.

По раскрашиванию меню не совсем понятно, как поступать с разными уровнями, которые автоматически закрываются? Выделять только верхний уровень? Или там все меню в одну строку? Тогда особых проблем нет - через set mark или вообще заменить меню на тулбар.
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Igor Korolyov
Отмечать "уже сделанное" - не в меню это лучше делать.Отмечать "уже сделанное" - не в меню это лучше делать.

Именно так - отмечать каким-то образом, что уже выполнено (что уже нажимали). Ну понял, значит не через меню придется переделать. Жаль, но покой нам только снится.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Может замутить какой-то дополнительный объект, который будет висеть на главном окне и точно так же отображать, что сделано? Вряд ли проще, чем через CommandButton продублировать вызовы из пунктов меню, но идея мне кажется интересной. Может даже получится автоматом вычитывать список пунктов меню, строить список и помечать, какой выполнен. Что смущает в таком подходе? (Это версия на коленке, сам не знаю плюсы и минусы, но вроде кажется заманчивой, можно и повозить ее).

Не взлетит?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Вполне можно и форму дополнительную повесить, и просто контрол на _SCREEN где вести либо простейший "лог проделанной работы", либо всегда показывать статический список "всех шагов алгоритма", помечая пройденные.

Меню для прохода по последовательным "шагам" в каком-то "расчёте" или "процессе" - очень неудачный выбор. Это либо формой a-la Wizard делается, либо тем или иным "запускальщиком" где СРАЗУ и ПОСТОЯННО видны все шаги, их увязка, уже сделанное, обязательное и опциональное... Меню не видно постоянно, да и неудобно через него проходить по последовательным/параллельным/взаимозависимым шагам в рабочем процессе пользователя.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Спасибо, Игорь, значит я более-менее правильно думал. С меню не взлетит, это понятно.

Ладно, есть над чем подумать, что-то прояснилось.

Всем спасибо! Тему не закрывать, может еще будут идеи или даже готовые решения.

P.S. Игорь, да я так и думал, что какой-то контрол (форму ?) повесить на _SCREEN ( я на нем работаю) - и пусть там все пункты (без пунктов отчетов) висят и обновляются цветом после нажатия на пункте меню.

Хотелось попроще, на работе нет времени на переделки интерфейса. Ну, да ладно, в целом стало понятнее, вопросов стало меньше, остальное на практике попробуем. Может другие появятся, если не нагуглю.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Как я понял.
Есть некая "задача" (Одна?)
Она состоит из нескольких этапов.
И надо отобразить пройденные этапы (ну и предстоящие)
Полагаю, написать код, не составит труда.
Тут главное правильно, разумно, понятно для юзера создать UI

Если возможны различные пути решения - может дерево?
Список, граф... поспрашивать у разумных юзеров, как они себе это представляют.

Ну и саму эту форму, надо по желанию юзера показывать, прятать.
Потому как вряд ли она нужна на перво и последнем этапе.

Тебе бы технического дизайнера. У них такие идеи классные, неожиданные (для меня) бывают.


------------------
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Не Володьк, юзеры жили под FPD26 - какое там дерево, не пугай их этим.

Реально, что им понравилось - по КоммандБаттон подсвечивалось. А я так не пишу, я классически через меню. Не припомню, чтобы работа через меню вызывала неудобство (ну может и не сравнивали что-то с чем-то - это да, согласен).

Да вроде уже с Игорем обсудили - контрол повесить, в нем продублировать все вызовы. Контрол можно автоматом, думаю по уже заданным пунктам меню нарисовать (пфф, да пусть лэйбл будет, к примеру). Ну и по нажатым пунктам подкрашивать.. Вроде годное решение..

Предложи лучше, я только ЗА, Володь!


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
sphinx
юзеры жили под FPD26

И тут пришли "добрые голодные дяди", и началось...
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
sphinx
Автор

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Simple777
И тут пришли "добрые голодные дяди", и началось...И тут пришли "добрые голодные дяди", и началось...

Не так. Это один из пунктов плана развития ИТ-отдела компании. Реально от меня мало что зависит. Я бы лучше под Оракл писал, если завтра на улице окажусь, то и VFP9 не нужен никому. Да уже все идет к тому, что и Оракл собираются хоронить - люди ратуют за то, что лицензии дорогие (это не только у нас, но и на в центре доп.проф.подготовки), проще уйти на ПостГресс. Собственно, переезд как раз не такой сложный, в моем понимании, хотя будут моменты, это понятно. Но по ПостГрессу надо консультироваться с Пашей Кручининым, как там поддержка Джавы и Си, как там с работой агрегатных функций.. это что я навскидку бы задал. Наверняка, если подумать - будут и другие вопросы.

А FPD26, кстати, неплохо перетранслируется, разве что с кодировкой мемо-полей я приседал немного, все броус-окна выкинул нахрен, у меня все сообщения банальными WAIT. Да, там предполагался лишний контроль, я его программно заделал, пусть люди спокойно кнопк4и жмут и не волнуются. Тут всем только польза..


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
sphinx
Не так. Это один из пунктов плана развития ИТ-отдела компании.

То есть на FPD 2.6, надо полагать, "всё работало неправильно и не так, как надо ИТ-отделу компании"? Отчеты печатались с ошибками, не вовремя и т.п.? Ну, тогда конечно - план развития ИТ-отдела компании имеет приоритет над планами развития каких-либо других отделов компании.
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
sphinx
Контрол можно автоматом, думаю по уже заданным пунктам меню нарисовать
А вот это ИМХО не верно.
Лучше заполнять его из объектов. (Вызываемых из того же меню)
Вообще, по мне так, объект, должен управлять своим внешним окружением.
Помечать меню, снимать пометки, управлять своей кнопкой в тулбаре... и пр.

Simple777
То есть на FPD 2.6, надо полагать, "всё работало неправильно и не так, как надо ИТ-отделу компании"? Отчеты печатались с ошибками, не вовремя и т.п.?
Думаю сарказм, он не в тему. Глупо это делать, если что то стоит на месте.
Но если ПО для бизнеса, то оно не может не меняться.
И вот в этом случае, подход очень даже не плох. Думаю люди все взвешивали со своей стороны.

Я где то в 90х с 2.0 на VFP 5 перешел. Функционала кот наплакал было))))
Очень легко как то прошло)


------------------
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
"Хотите верьте, хотите - нет", но для формирования первичных алфавитно-цифровых документов FPD должно "хватать за глаза". Более высокие уровни интеграции - тут "базара ноль". \m/
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Sawradym

Сообщений: 2244
Откуда: Винница
Дата регистрации: 15.05.2007
sphinx
Не Володьк, юзеры жили под FPD26 - какое там дерево, не пугай их этим.
Реально, что им понравилось - по КоммандБаттон подсвечивалось. А я так не пишу, я классически через меню. Не припомню, чтобы работа через меню вызывала неудобство (ну может и не сравнивали что-то с чем-то - это да, согласен).

Да вроде уже с Игорем обсудили - контрол повесить, в нем продублировать все вызовы. Контрол можно автоматом, думаю по уже заданным пунктам меню нарисовать (пфф, да пусть лэйбл будет, к примеру). Ну и по нажатым пунктам подкрашивать.. Вроде годное решение..

Предложи лучше, я только ЗА, Володь!

У меня почему-то по твоему описанию возникла аналогия с инсталляторами с их нопками Next и Back. Там уж точно не заблудишься и ничего не пропустишь.


------------------
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Simple777
То есть на FPD 2.6, надо полагать, "всё работало неправильно и не так, как надо ИТ-отделу компании"?
Даже если всё работает "на отлично", возникают вопросы - добавить то, добавить сё, новый отчётец, новый расчётный модуль, вообще новый кусок задачи (ранее не решавшийся). И найти специалиста делать всё это под FPD - та ещё морока (даже среди тех кто "в принципе" владеет FPD, желающих на нём работать будет крайне мало). Так что переход на нечто живое - он вполне себе оправдан. Если:
- есть денежные ресурсы,
- есть люди,
- проект живой.

Конечно же переход на VFP нынче выглядит, мягко говоря, странноватым - с одного мёртвого на другой мёртвый, со всеми вытекающими последствиями.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Как подсвечивать выбранные пункты меню
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Igor Korolyov
Конечно же переход на VFP нынче выглядит, мягко говоря, странноватым - с одного мёртвого на другой мёртвый, со всеми вытекающими последствиями.

Ну кагбэ да. Притом FPD вполне себе живуч под виртуалками на любых осях. VFP же нередко глючит на новых версиях винды - как 32, так 64-разрядных.

В любом случае в нынешние времена переход от FPD к VFP выглядит весьма и весьма странным. Если уж и тратить деньги на осовременивание софта, то надо смотреть в сторону WEB-технологий.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 19 vasili_u  (Гостей: 18)

© 2000-2024 Fox Club 
Яндекс.Метрика