Текущий архив: 2007.09.23;
Скачать: CL | DM;
ВнизДинамическая вставка пунктов меню в «нужные» места, как? Найти похожие ветки
← →
Сергей М. © (2007-08-30 14:11) [40]
> а что он сохранит отчёт, или еще что-то зависит от контекста,
> так?
Именно так и никак иначе !
Краткость - сестра таланта)
← →
Reindeer Moss Eater © (2007-08-30 14:12) [41]Ясно, нехватает только: «а если не нашли»…
<Цитата>
А если не нашли, то делать аппенд
← →
Kolan © (2007-08-30 14:13) [42]В Delphi есть «сохранить» и «сохранить проект»…
← →
Сергей М. © (2007-08-30 14:17) [43]
> Kolan © (30.08.07 14:11) [38]
Реализуй у всех своих плагинов интерфейс, например, ISaveEngine.
Пусть этот инт-с имеет св-во Saveable и методы Save, SaveAs
Тогда запрос у плагина зн-я св-ва Saveable позволит разрешить пункт меню "Сохранить", если плагин реализует сохранение своих данных, и запретить, если иначе.
Если пункт разрешен, то он вызывает метод ISaveEngine.Save соответствующего плагин-объекта.
← →
Kolan © (2007-08-30 14:18) [44]>
> Именно так и никак иначе !
>
> Краткость — сестра таланта)
Теоритически это возможно(хоть и не реализовано), но вот как тогда получится:
У меня есть две закладки, на одной график, на другой таблица(отчёт).
Выходит чтобы сохранить график я должен открыть закладку с графиком полезть в меню и сохранить, а если таблицу, то перейти в закладку с таблицей полезть в меню и сохранить…
Имхо это странно. Вот когда у меня доступ к функциям(кнопки) прям внутри закладки, то тут все я ясно до них и не долезть не открыв звкладку…
А в вашем варианте выходит один и тот же пункт делает разные вещи в зав от закладки — имхо это не очевидно…
← →
Kolan © (2007-08-30 14:21) [45]> при условии что юзер выбирая некий пункт меню для сохранения
> знает, что речь сейчас идет именно об отчете
Дык вот я и сомневаюсь что это условие True. От закладки до меню еще ToolBar можно и запутаться пока машь дотянешь.
И надо всегда держать в памяти «Где я»…
ЗЫ не увидел пост…
> А если не нашли, то делать аппенд
Что есть аппенд?
← →
Kolan © (2007-08-30 14:23) [46]> Реализуй у всех своих плагинов интерфейс, например, ISaveEngine
Это реализация, благодарю, я приму во внимание…
А что идея с секциями вам вообще не нравится(Если всеж таки не делать одно «Сохранить» на всех)?
← →
Сергей М. © (2007-08-30 14:25) [47]
> в вашем варианте выходит один и тот же пункт делает разные
> вещи в зав от закладки — имхо это не очевидно
Да что ты !?
"Сохранить" - оно и в Африке "Сохранить".
Юзеру, если он вменяемый и знает с чем он сейчас работает (то ли с графиком, то ли с отчетом), начхать на то КАК ты реализуешь то или иное сохранение. Он знает одно - ему надо просто СОХРАНИТЬ результаты своей работы. А вот тебе в зависимости от контекста нужно (если это действительно требуется) позаботиться о, например, соответствующем, предупреждении вида : "Документ-отчет будет перезаписан..", или "Документ-график будет перезаписан.."
← →
Kolan © (2007-08-30 14:25) [48]В фотошопе есть
Save
Save a version
Save for Web
Все таки так люди поступают…
← →
Сергей М. © (2007-08-30 14:28) [49]
> В фотошопе есть
> Save
> Save a version
> Save for Web
И что ?
Это есть "устоявшееся" меню ?
Ну а где тогда "Save project as .." из столь же "устоявшегося" меню Delphi IDE ?
← →
Kolan © (2007-08-30 14:32) [50]> Он знает одно — ему надо просто СОХРАНИТЬ результаты своей
> работы.
Вот в том то и дело что в описаной конкретной задаче основной результат — это отчёт и именно его сохраняют а сохранение графика — это экзотическая функция, которая нужна оч. редко.
И вот чел(кстати средней и низкой квалификации, программа в основном используется для проверки и отбраковки изделий, то есть тупая, однообразная работа) все время сохраняет отчет — это и есть его «результат работы».
При наличии двух пунктов
Сохр график
Сохр отчёт
Человек всегда тыкает «сохранить отчёт»
А в случае «Закладко зависимого :)» сохранить он будет раз через раз попадать на сохр графика — это плохо.
← →
Kolan © (2007-08-30 14:35) [51]> И что ?
>
> Это есть «устоявшееся» меню ?
>
> Ну а где тогда «Save project as …» из столь же «устоявшегося»
> меню Delphi IDE ?
Еще раз говорю устоявшаяся структура то есть правила типа: «Сохранить» нельзя втыкать до «Новый» итд…
Как это назвать я незнаю…
> И что ?
Анализирую как другие люди делают. Сдела вывод что вариант «Сохранить график», «Сохранить отчёт» вполне нормальное решения…
Просто у меня документы выходит разнородные по сути, пока мое имхо — это вариант с двумя пунктами и реализация с пом секций…
Но я не уверен вот и думаю…
← →
Сергей М. © (2007-08-30 14:36) [52]
> все время сохраняет отчет — это и есть его «результат работы»
Если так, то опять же виноват ТЫ как программист, сделавший свой GUI интуитивно непонятным.
И если чел в дан.момент пялится в график, то как он может сохранить отчет, если меню "Сохранить" работает в контексте графика. а не отчета ?)
← →
Kolan © (2007-08-30 14:37) [53]> А в случае «Закладко зависимого :)» сохранить он будет раз
> через раз попадать на сохр графика — это плохо.
Потому что он в основном работает на закладке с графиками, а на закладку с отчетом, обычно, надо переключится чтобы его сохранить…
← →
Сергей М. © (2007-08-30 14:41) [54]
> у меня документы выходит разнородные по сути
Это нормально. Но каждый из них все же подразумевает ОБЩЕЕ действие - "Сохранить".
Если уж тебе так приспичило угодить тупому юзеру, то организуй верхнеуровневые меню "Отчеты" и "Графики", а в каждом из них - "Сохранить".
Если есть хотя бы один активный объект-отчет, делай видимым меню "Отчеты" (и в нем условно разрешай подменю "Сохранить"). Аналогично для объекта-графика.
← →
Kolan © (2007-08-30 14:45) [55]> И если чел в дан.момент пялится в график, то как он может
> сохранить отчет, если меню «Сохранить» работает в контексте
> графика. а не отчета ?)
Вот я о том же … вот я за два разных пункта и голосую…
> Если так, то опять же виноват ТЫ как программист
Возможно, но не уверен. Суть такая чел проводит измерения. Каждое измерение — это график. Кроме того это еще и строка отчета.
Вот он меряе мерят смотрит на графики, а потом все намереное надо сохранить для статистики для этого нужен отчет…
Ошибка тут наверно есть просто UI всегда один и тот же а пользователей два типа…
1. Исследователь — он на графики в основном смотрит, анализирует, но и отчет иногда ему нужен.
2. Оператор — он на графики смотрит в основном в кач развлечения — его результат это отчёт…
Вот такого разделения нет, видимо оно нужно, но сейчас реализовать его невозможно(сроки итд…)
← →
Kolan © (2007-08-30 14:49) [56]> Если уж тебе так приспичило угодить тупому юзеру, то организуй
> верхнеуровневые меню «Отчеты» и «Графики», а в каждом из
> них — «Сохранить».
>
> Если есть хотя бы один активный объект-отчет, делай видимым
> меню «Отчеты» (и в нем условно разрешай подменю «Сохранить»)
> . Аналогично для объекта-графика.
Не это уже слишком :) Тут я и сам запутаюсь…
Блин где нить бы прочитать про такие UI, типа Apple"овского Human Interface…
← →
Kolan © (2007-08-30 15:00) [57]> Это нормально.
А можно пример проги с именно разнородыми документами и доним пунктом «Сохранить», я что-то смотрю везде один тип документа…
← →
Сергей М. © (2007-08-30 15:16) [58]
> А можно пример проги с именно разнородыми документами и
> доним пунктом «Сохранить»
Да ведь он у тебя перед носом !)
Меню "Save[ as..]" Delphi IDE)
← →
Сергей М. © (2007-08-30 15:30) [59]Желаешь таки ублажить тупого юзера ?
Углублюсь в советы:
Интерфейс ISaveable твоего плагин-объекта для этого может реализовать следующие методы и св-ва:
GetSaveMenuCaption
GetSaveAsMenuCaption
CanSaveNow
Save
SaveAs
А дальше тебе, вполне может быть, понадобится печать разнородных документов.
По полной аналогии с ISaveable реализуешь IPrintable:
GetPrintMenuCaption
GetPrintPropertiesMenuCaption
CanPrintNow
PrintProperties
← →
vpbar © (2007-08-30 16:43) [60]Строить все меню в рантайм беря названий, действия и т.п. из файла конфигурации. (Например в формате xml или ini). Тогда при добавлении плагина (набора плагинов) к нему прилагается конфигурация меню.
← →
Сергей М. © (2007-08-30 16:48) [61]
> vpbar © (30.08.07 16:43) [60]
>
> Строить все меню в рантайм беря названий, действия и т.п.
> из файла конфигурации
Угу.
Вот, к примеру, юзер захотел поиметь супурпуперновый плагин от Коляна (С).
Откуда они, настройки этого "супурпупернового плагина от Коляна" возьмутся в том самом файле ?)
← →
vpbar © (2007-08-30 16:52) [62]>>Сергей М. © (30.08.07 16:48) [61]
>>Откуда они, настройки этого "супурпупернового плагина от Коляна" возьмутся
От Коляна и возьмутся. Или пусть сам юзверь выбирает куда вставить пункты
← →
Сергей М. © (2007-08-30 16:55) [63]
> vpbar © (30.08.07 16:52) [62]
> От Коляна и возьмутся
Колян-то ведь сам заявил, что не знает пока, каких плагинов он еще наплодит, будучи в здравом уме и добром здравии)
← →
Kolan © (2007-08-30 17:38) [64]> Колян-то ведь сам заявил, что не знает пока, каких плагинов
> он еще наплодит, будучи в здравом уме и добром здравии)
Да, этот вариант шило на мыло получается…
> Углублюсь в советы:
Благодарю Сергей, идею я эту понял(стратегия/состояние) да так часто и делаю просто плагин у меня может делать все что угодно, и глупо как-то в плагине, который показывает окно «О программе» иметь тучу лишних(пустых) методов.
Но это реализация — ну её :)
> Да ведь он у тебя перед носом !)
>
> Меню «Save[ as…]» Delphi IDE)
Не сейв в Delphi сохраняет все скопом(для формы например) а у меня как получится так:
(если бы я делал Delphi)Если видим форму и жмем сохранить, то сохраняется форма(dfm), если видим код и жмем сохранить, то сохр код… Имхо геморой…
← →
oldman © (2007-08-30 17:47) [65]Почитал месс 10 и устал...
ЗАЧЕМ ВСТАВЛЯТЬ ПУНКТЫ МЕНЮ ВО ВРЕМЯ РАБОТЫ ПРОГИ??????
ОСОБЕННО ТИПА "НОВЫЙ","СОХРАНИТЬ","ВЫХОД"???
Идиотизм...
Можно-же их просто делать активными\неактивными.
← →
Kolan © (2007-08-30 17:53) [66]> Почитал месс 10 и устал…
Мало прочел. Надобность есть.
← →
oldman © (2007-08-30 17:55) [67]
> Kolan © (30.08.07 17:53) [66]
> Мало прочел. Надобность есть.
Не вижу такой надобности...
← →
Kolan © (2007-08-30 17:55) [68]> Не вижу такой надобности…
> ЗАЧЕМ ВСТАВЛЯТЬ ПУНКТЫ МЕНЮ ВО ВРЕМЯ РАБОТЫ ПРОГИ??????
ПЛАГИНЫ!!!??? $%#
:)
← →
Жуков Олег (2007-08-31 01:12) [69]
> плагине, который показывает окно «О программе» иметь тучу
> лишних(пустых) методов.
>
Необязательно тогда ему реализовывать ISaveable совсем, а приложение разберётся, поддерживает он этот интерфейс или нет. С предопределёнными секциями тоже нормально, только лишние разделители придётся интеллектуально прятать.
← →
Сергей М. © (2007-08-31 08:39) [70]
> приложение разберётся, поддерживает он этот интерфейс или
> нет
Это как же оно "разберется" ?
Только сам объект (и никто кроме него) знает, реализует он такой-то интерфейс или не реализует ..
← →
Kolan © (2007-08-31 08:39) [71]> Необязательно тогда ему реализовывать ISaveable совсем,
> а приложение разберётся, поддерживает он этот интерфейс
> или нет.
На самом деле это реализовать сожно в данном случае, так как плагины общаются через медиатор передавая друг другу комманды(объекты) — целое дело короче…
С предопределёнными секциями тоже нормально,
Вот и я думаю, что нормально.
только лишние разделители придётся интеллектуально прятать.
Угу.
← →
Жуков Олег (2007-08-31 13:01) [72]
> Сергей М. © (31.08.07 08:39) [70]
>
>
Интересно, всё знает, а сказать не может...
← →
Сергей М. © (2007-08-31 16:08) [73]
> Жуков Олег (31.08.07 13:01) [72]
> всё знает, а сказать не может
А зачем ему что-то говорить, если его не спрашивают ? Чего ему зазря шуметь ?)
Вот когда у него кто-то спросит QueryInterface, тогда он и ответит S_OK или S_FALSE
Страницы: 1 2 вся ветка
Текущий архив: 2007.09.23;
Скачать: CL | DM;
Память: 0.61 MB
Время: 0.045 c