Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.23;
Скачать: [xml.tar.bz2];

Вниз

Динамическая вставка пунктов меню в «нужные» места, как?   Найти похожие ветки 

 
Сергей М. ©   (2007-08-30 14:11) [40]


> а что он сохранит отчёт, или еще что-то зависит от контекста,
>  так?


Именно так и никак иначе !

Краткость - сестра таланта)


 
Reindeer Moss Eater ©   (2007-08-30 14:12) [41]

Ясно, нехватает только: «а если не нашли»…

<Цитата>

А если не нашли, то делать аппенд


 
Kolan ©   (2007-08-30 14:13) [42]

В Delphi есть &laquo;сохранить&raquo; и &laquo;сохранить проект&raquo;&#133


 
Сергей М. ©   (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]

>
> Именно так и никак иначе !
>
> Краткость &#151; сестра таланта)

Теоритически это возможно(хоть и не реализовано), но вот как тогда получится:

У меня есть две закладки, на одной график, на другой таблица(отчёт).

Выходит чтобы сохранить график я должен открыть закладку с графиком полезть в меню и сохранить, а если таблицу, то перейти в закладку с таблицей полезть в меню и сохранить&#133

Имхо это странно. Вот когда у меня доступ к функциям(кнопки) прям внутри закладки, то тут все я ясно до них и не долезть не открыв звкладку&#133
А в вашем варианте выходит один и тот же пункт делает разные вещи в зав от закладки &#151; имхо это не очевидно&#133


 
Kolan ©   (2007-08-30 14:21) [45]

> при условии что юзер выбирая некий пункт меню для сохранения
> знает, что речь сейчас идет именно об отчете


Дык вот я и сомневаюсь что это условие True. От закладки до меню еще ToolBar можно и запутаться пока машь дотянешь.
И надо всегда держать в памяти &laquo;Где я&raquo;&#133

ЗЫ не увидел пост&#133

> А если не нашли, то делать аппенд

Что есть аппенд?


 
Kolan ©   (2007-08-30 14:23) [46]

> Реализуй у всех своих плагинов интерфейс, например, ISaveEngine

Это реализация, благодарю, я приму во внимание&#133

А что идея с секциями вам вообще не нравится(Если всеж таки не делать одно &laquo;Сохранить&raquo; на всех)?


 
Сергей М. ©   (2007-08-30 14:25) [47]


> в вашем варианте выходит один и тот же пункт делает разные
> вещи в зав от закладки — имхо это не очевидно


Да что ты !?

"Сохранить" - оно и в Африке "Сохранить".

Юзеру, если он вменяемый и знает с чем он сейчас работает (то ли с графиком, то ли с отчетом), начхать на то КАК ты реализуешь то или иное сохранение. Он знает одно - ему надо просто СОХРАНИТЬ результаты своей работы. А вот тебе в зависимости от контекста нужно (если это действительно требуется) позаботиться о, например, соответствующем, предупреждении вида : "Документ-отчет будет перезаписан..", или "Документ-график будет перезаписан.."


 
Kolan ©   (2007-08-30 14:25) [48]

В фотошопе есть
Save
Save a version
Save for Web

Все таки так люди поступают&#133


 
Сергей М. ©   (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]

> Он знает одно &#151; ему надо просто СОХРАНИТЬ результаты своей
> работы.

Вот в том то и дело что в описаной конкретной задаче основной результат &#151; это отчёт и именно его сохраняют а сохранение графика &#151; это экзотическая функция, которая нужна оч. редко.

И вот чел(кстати средней и низкой квалификации, программа в основном используется для проверки и отбраковки изделий, то есть тупая, однообразная работа) все время сохраняет отчет &#151; это и есть его &laquo;результат работы&raquo;.

При наличии двух пунктов
Сохр график
Сохр отчёт
Человек всегда тыкает &laquo;сохранить отчёт&raquo;

А в случае &laquo;Закладко зависимого :)&raquo; сохранить он будет раз через раз попадать на сохр графика &#151; это плохо.


 
Kolan ©   (2007-08-30 14:35) [51]

> И что ?
>
> Это есть &laquo;устоявшееся&raquo; меню ?
>
> Ну а где тогда &laquo;Save project as &#133&raquo; из столь же &laquo;устоявшегося&raquo;
> меню Delphi IDE ?

Еще раз говорю устоявшаяся структура то есть правила типа: &laquo;Сохранить&raquo; нельзя втыкать до &laquo;Новый&raquo; итд&#133
Как это назвать я незнаю&#133


> И что ?

Анализирую как другие люди делают. Сдела вывод что вариант &laquo;Сохранить график&raquo;, &laquo;Сохранить отчёт&raquo; вполне нормальное решения&#133

Просто у меня документы выходит разнородные по сути, пока мое имхо &#151; это вариант с двумя пунктами и реализация с пом секций&#133

Но я не уверен вот и думаю&#133


 
Сергей М. ©   (2007-08-30 14:36) [52]


> все время сохраняет отчет — это и есть его «результат работы»


Если так, то опять же виноват ТЫ как программист, сделавший свой GUI интуитивно непонятным.

И если чел в дан.момент пялится в график, то как он может сохранить отчет, если меню "Сохранить" работает в контексте графика. а не отчета ?)


 
Kolan ©   (2007-08-30 14:37) [53]

> А в случае «Закладко зависимого :)» сохранить он будет раз
> через раз попадать на сохр графика — это плохо.

Потому что он в основном работает на закладке с графиками, а на закладку с отчетом, обычно, надо переключится чтобы его сохранить&#133


 
Сергей М. ©   (2007-08-30 14:41) [54]


> у меня документы выходит разнородные по сути


Это нормально. Но каждый из них все же подразумевает ОБЩЕЕ действие - "Сохранить".

Если уж тебе так приспичило угодить тупому юзеру, то организуй верхнеуровневые меню "Отчеты" и "Графики", а в каждом из них - "Сохранить".

Если есть хотя бы один активный объект-отчет, делай видимым меню "Отчеты" (и в нем условно разрешай подменю "Сохранить"). Аналогично для объекта-графика.


 
Kolan ©   (2007-08-30 14:45) [55]

> И если чел в дан.момент пялится в график, то как он может
> сохранить отчет, если меню &laquo;Сохранить&raquo; работает в контексте
> графика. а не отчета ?)

Вот я о том же &#133 вот я за два разных пункта и голосую&#133


> Если так, то опять же виноват ТЫ как программист

Возможно, но не уверен. Суть такая чел проводит измерения. Каждое измерение &#151; это график. Кроме того это еще и строка отчета.

Вот он меряе мерят смотрит на графики, а потом все намереное надо сохранить для статистики для этого нужен отчет&#133

Ошибка тут наверно есть просто UI всегда один и тот же а пользователей два типа&#133

1. Исследователь &#151; он на графики в основном смотрит, анализирует, но и отчет иногда ему нужен.
2. Оператор &#151; он на графики смотрит в основном в кач развлечения &#151; его результат это отчёт&#133

Вот такого разделения нет, видимо оно нужно, но сейчас реализовать его невозможно(сроки итд&#133)


 
Kolan ©   (2007-08-30 14:49) [56]

> Если уж тебе так приспичило угодить тупому юзеру, то организуй
> верхнеуровневые меню &laquo;Отчеты&raquo; и &laquo;Графики&raquo;, а в каждом из
> них &#151; &laquo;Сохранить&raquo;.
>
> Если есть хотя бы один активный объект-отчет, делай видимым
> меню &laquo;Отчеты&raquo; (и в нем условно разрешай подменю &laquo;Сохранить&raquo;)
> . Аналогично для объекта-графика.

Не это уже слишком :) Тут я и сам запутаюсь&#133

Блин где нить бы прочитать про такие UI, типа Apple"овского Human Interface&#133


 
Kolan ©   (2007-08-30 15:00) [57]

> Это нормально.

А можно пример проги с именно разнородыми документами и доним пунктом &laquo;Сохранить&raquo;, я что-то смотрю везде один тип документа&#133


 
Сергей М. ©   (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
Print
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]

> Колян-то ведь сам заявил, что не знает пока, каких плагинов
> он еще наплодит, будучи в здравом уме и добром здравии)

Да, этот вариант шило на мыло получается&#133


> Углублюсь в советы:

Благодарю Сергей, идею я эту понял(стратегия/состояние) да так часто и делаю просто плагин у меня может делать все что угодно, и глупо как-то в плагине, который показывает окно &laquo;О программе&raquo; иметь тучу лишних(пустых) методов.

Но это реализация &#151; ну её :)


> Да ведь он у тебя перед носом !)
>
> Меню &laquo;Save[ as&#133]&raquo; Delphi IDE)


Не сейв в Delphi сохраняет все скопом(для формы например) а у меня как получится так:

(если бы я делал Delphi)Если видим форму и жмем сохранить, то сохраняется форма(dfm), если видим код и жмем сохранить, то сохр код&#133 Имхо геморой&#133


 
oldman ©   (2007-08-30 17:47) [65]

Почитал месс 10 и устал...

ЗАЧЕМ ВСТАВЛЯТЬ ПУНКТЫ МЕНЮ ВО ВРЕМЯ РАБОТЫ ПРОГИ??????
ОСОБЕННО ТИПА "НОВЫЙ","СОХРАНИТЬ","ВЫХОД"???
Идиотизм...
Можно-же их просто делать активными\неактивными.


 
Kolan ©   (2007-08-30 17:53) [66]

> Почитал месс 10 и устал&#133

Мало прочел. Надобность есть.


 
oldman ©   (2007-08-30 17:55) [67]


> Kolan ©   (30.08.07 17:53) [66]
> Мало прочел. Надобность есть.


Не вижу такой надобности...


 
Kolan ©   (2007-08-30 17:55) [68]

> Не вижу такой надобности&#133


> ЗАЧЕМ ВСТАВЛЯТЬ ПУНКТЫ МЕНЮ ВО ВРЕМЯ РАБОТЫ ПРОГИ??????

ПЛАГИНЫ!!!??? $%#

:)


 
Жуков Олег   (2007-08-31 01:12) [69]


> плагине, который показывает окно «О программе» иметь тучу
> лишних(пустых) методов.
>

Необязательно тогда ему реализовывать ISaveable совсем, а приложение разберётся, поддерживает он этот интерфейс или нет. С предопределёнными секциями тоже нормально, только лишние разделители придётся интеллектуально прятать.


 
Сергей М. ©   (2007-08-31 08:39) [70]


> приложение разберётся, поддерживает он этот интерфейс или
> нет


Это как же оно "разберется" ?

Только сам объект (и никто кроме него) знает, реализует он такой-то интерфейс или не реализует ..


 
Kolan ©   (2007-08-31 08:39) [71]

> Необязательно тогда ему реализовывать ISaveable совсем,
> а приложение разберётся, поддерживает он этот интерфейс
> или нет.

На самом деле это реализовать сожно в данном случае, так как плагины общаются через медиатор передавая друг другу комманды(объекты) &#151; целое дело короче&#133

С предопределёнными секциями тоже нормально,
Вот и я думаю, что нормально.

только лишние разделители придётся интеллектуально прятать.
Угу.


 
Жуков Олег   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.61 MB
Время: 0.048 c
15-1187801365
ferr
2007-08-22 20:49
2007.09.23
Бука.


2-1188279351
AllDer
2007-08-28 09:35
2007.09.23
Сообщение смены разрешения


2-1188476752
parivet
2007-08-30 16:25
2007.09.23
Вопрос на засыпку


2-1188465693
MAXHo
2007-08-30 13:21
2007.09.23
Вопрос по TWebBrowser


2-1188369608
cvg
2007-08-29 10:40
2007.09.23
Как обращаться к предыдущим точкам графика TChart?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский