Текущий архив: 2007.09.23;
Скачать: CL | DM;
ВнизДинамическая вставка пунктов меню в «нужные» места, как? Найти похожие ветки
← →
Kolan © (2007-08-30 12:21) [0]Здравствуйте,
Дано:
1. Допустим мы умеем вставлять пункт в гл. меню(и сепараторы тоже умеем). Сейчас умеем вставлять только в конец меню.
2. Нам дают пять пунктов: «Новый», «Открыть», «Сохранить», «Сохранить как…», «Выход».
3. Причм пункты дают в произвольном порядке и в разные мом времени, из разных мест программы.
Задание:
Вставить данные пункты в «правильном» порядке. Правидьный порядок такой:Новый
-
Открыть
-
Сохранить
Сохранить как…
-
Выход
Проблемма:
Понятно, что с учетом(1) пункты вставяться как попало…
Вопрос:
Как модифицировать алгоритм вставки чтобы добится желаемого.
ЗЫ
У меня идей нет :(
← →
Сергей М. © (2007-08-30 12:30) [1]см. TMenuItem.Insert
← →
Вася Правильный (2007-08-30 12:31) [2]property MenuIndex: Integer;
Indicates the index of the menu item within its parent menu.
← →
Сергей М. © (2007-08-30 12:32) [3]Use MenuIndex to locate the menu item in the Items property of its parent menu item. Changing this value moves the menu item within its menu.
Note: MenuIndex may not correspond to the position of the item in the menu the user sees. The menu can include items that are not visible
← →
Kolan © (2007-08-30 13:22) [4]> Indicates the index of the menu item within its parent menu.
Ок, вы меня не поняли. Мне нужен алгоритм(за св-во благодарю не знал)…
Поясняющая задача:
Допустим есть два участка кода, в которых добавляются пункты.
В первом «Открыть» во втором «Сохранить»
Вы мне говорите: «Укажи мол индекс»
— Хорошо, но каккой?
Когда я добавляю пункт «Сохранить» какой задать индекс? 3?
-Да, если меню такое:(1)Открыть
(2)-
(3)Сохранить
А если команду «открыть» не дбавляли — то 1:(1)Сохранить
Так какой же указать 3 или 1?
Вот что я придумать не могу…
← →
Reindeer Moss Eater © (2007-08-30 13:25) [5]Так какой же указать 3 или 1?
Вот что я придумать не могу…
перебери уже существующие пункты. неужели непонятно?
← →
Kolan © (2007-08-30 13:27) [6]Иными словами, тот кто инициирует вставку незнает куда вставлять пункт…
Может какието секции придумать. «Секция» — пусть будут пункты от сепаратора до сепоратора. Как то так:(1)Новый
-
(2)Открыть
-
(3)Сохранить
Сохранить как…
-
(4)Выход
Ии при вставке указывать желаемую секцию…
← →
Reindeer Moss Eater © (2007-08-30 13:28) [7]Иными словами, тот кто инициирует вставку незнает куда вставлять пункт…
не знает, или не хочет знать?
← →
Kolan © (2007-08-30 13:29) [8]> перебери уже существующие пункты. неужели непонятно?
Конечно нет.
Есть менюНовый
-
Открыть
-
Сохранить как…
-
Выход
Куда вставить «Сохранить»?
Как их перебрать? Как я объясню компу, что «Сохранить» должно идти ДО уже существующего «Сохранить как…»?…
← →
Reindeer Moss Eater © (2007-08-30 13:30) [9]Как их перебрать?
Уже смеяться, или еще будет солво "лопата" ?
← →
Darkwingg (2007-08-30 13:30) [10]а для чего это нужно? поясните пожалуйста. Может быть:
1. просто делать неактивными ненужные пункты?
или
2. в коде программы, где осуществляется вставка, перебирать существующие индексы, пока не будет найден тот, который должен перед вставляемым
3. содержать некую структуру (массив) в которой отмечать событие вставки\удаления. по ней легко можно определить место.
← →
Kolan © (2007-08-30 13:31) [11]> не знает, или не хочет знать?
Именно незнает. Вставляющие меню находятся в пакетах и посылают команду «Вставь пункт „Открыть“», они даже незнаю вставилось там что-то или нет…
← →
Reindeer Moss Eater © (2007-08-30 13:32) [12]Именно незнает. Вставляющие меню находятся в пакетах и посылают команду «Вставь пункт „Открыть“», они даже незнаю вставилось там что-то или нет…
А передать из пакета, что вставить надо перед таким-то пунктом или после такого-то пункта кто тебе мешает?
← →
Сергей М. © (2007-08-30 13:34) [13]
> посылают команду
Куда и кому посылают ? "На деревню дедушке" что ли ?)
← →
Kolan © (2007-08-30 13:36) [14]> а для чего это нужно? поясните пожалуйста.
Смысл прост. Есть плагины. Одним плагинам достаточно просто вставить пункт в меню «Плагины» и порядок не важен, а есть такие, которым надо вставить пункт в меню «Файл» например, а там порядок уже устоялся.
Собсо пример:
http://delphimaster.net/view/1-1188460255/
> который должен перед вставляемым
А который должен идти перед «Выход» ?содержать некую структуру (массив) в которой отмечать событие вставки\удаления.
Тут что-то есть рациональное, только структура жесткая не подходит…
> Уже смеяться, или еще будет солво «лопата» ?
Шото вы сёдня злой :(.
← →
Reindeer Moss Eater © (2007-08-30 13:36) [15]они даже незнаю вставилось там что-то или нет…
А ты расскажи "им", что люди когда-то давно придумали функции, которые возвращают результат, и результаты можно проверять после вызова функций.
← →
Сергей М. © (2007-08-30 13:38) [16]
> там порядок уже устоялся
Кто его "устоял" ?
← →
Reindeer Moss Eater © (2007-08-30 13:38) [17]Колян, то есть если я нарисую меню н алисте бумаги и попрошу тебя карандашом пририсовать пункт "сохранить как" после существующего пункта "сохранить" то ты тоже ничего не сможешь сделать?
← →
Kolan © (2007-08-30 13:40) [18]> Куда и кому посылают ? «На деревню дедушке» что ли ?)
Почти так и есть. Посылают медиатору, а что дальше — хз(для них).
> А передать из пакета, что вставить надо перед таким-то пунктом
> или после такого-то пункта кто тебе мешает?
Мой моск мешает он не придумал как это сделать.
Сейчас есть возможность послать команду вида: «Добавь пункт „Открыть“ в меню „Файл“», как указать что открыть должно быть между «Новый» и «Сохранить» если таких может не быть… хз
И кроме того:
В меню вида:
Новый
-
Открыть
-
Сохранить
Сохранить как…
-
Выход
«Сохранить как…» между «Выход» и «Сохранить»,
а если «Сохранить» нет, то между «Открыть» и «Выход»
…
← →
Kolan © (2007-08-30 13:43) [19]> Кто его «устоял» ?
Майкрасофт, Apple ссылки надо? Или и так понятно что увидев такое меню:Сохранить как…
-
Открыть
-
Сохранить
Выход
Новый
-
Программу тут же сотрут с винта…
> Колян, то есть если я нарисую меню н алисте бумаги и попрошу
Я смогу, но приделывать нейро сеть для вставки пунктов меню нехочется :)
← →
Сергей М. © (2007-08-30 13:43) [20]Колян, уважаемый, "умные" разработчики пользуют для пунктов "устоявшихся" меню не "Вставить/Вынуть", а "Разрешить/Запретить"
)
← →
Reindeer Moss Eater © (2007-08-30 13:43) [21]Сейчас есть возможность послать команду вида: «Добавь пункт „Открыть“ в меню „Файл“», как указать что открыть должно быть между «Новый» и «Сохранить» если таких может не быть… хз
надо чтобы появилась новая возможность.
← →
Kolan © (2007-08-30 13:45) [22]Наверно надо ввести понятие секций… Я все больше склоняюсь к такому решению, правда тогда при вставке
«Новый» секция 1
«Выход» секция 4
Будет:
Что-то вроде:Новый
-
-
-
Выход
Но это в крайнем случае…
← →
Reindeer Moss Eater © (2007-08-30 13:46) [23]Убери свои секции и больше не показывай. Здесь они нафик не нужны никому.
Кто писал интефейс добавления пунктов?
← →
Kolan © (2007-08-30 13:49) [24]>
> надо чтобы появилась новая возможность.
Ессно надо я еще в [0] это сказал. Вся же и суть в том какая и какона должна работать…
> «Разрешить/Запретить»
То есть предлогаете сделать меню сразу.
К сожалению не подходит. Все из-за плагинов.
Пример:
Я продаю программ которая делает что-то. А кроме того я могу продать(отдельно) плагин-редактор отчетов. И если у пользователя нет плагина, то и нет пунктов меню для работы с отчётом.
Крометого я просто не знаю какой плагин я напишу через месяц и какие пункты и куда ему надо будет вставить…
ЗЫ
Колян, уважаемый
Да лана, лана можно просто Колян :)
← →
Kolan © (2007-08-30 13:51) [25]> Кто писал интефейс добавления пунктов?
Все писал я. Код, я думаю тут не нужен, я же не конкретное решение прошу, а идею, алгоритм, д. взаимодействия…
← →
Reindeer Moss Eater © (2007-08-30 13:51) [26]Вся же и суть в том какая и какона должна работать…
Сказали же уже какая.
Должна быть возможность передавать имя опорного пункта и признак куда именно вставлять новый пункт до или после.
← →
Сергей М. © (2007-08-30 13:53) [27]
> То есть предлогаете сделать меню сразу
Не предлагаю, а настоятельно рекомендую.
И рекомендую, кстати, для "плагиноспецифичных" пунктов меню (надеюсь, ты не будешь утверждать, что они "устоявшиеся" ?) организовать отдельные подменю.
← →
Kolan © (2007-08-30 13:55) [28]> Сказали же уже какая.
Хорошо можешь написать такую команду типа: «„Добавь пункт «Открыть» в меню «Файл»“».
Прям шас и протестируем будет ли она работать корректно.
Команда вида «Добавь пункт „Открыть“ в меню „Файл“, полсе „Новый“ и до „Сохранить“» негодится, так как не понятно куда вставлять в таком случае:Новый
Выход
← →
Kolan © (2007-08-30 13:58) [29]> [27] Сергей М. © (30.08.07 13:53)
> И рекомендую, кстати, для «плагиноспецифичных» пунктов меню
> (надеюсь, ты не будешь утверждать, что они «устоявшиеся»
> ?) организовать отдельные подменю.
Такое меню уже есть. Собссно для него и реализована простая вставка в конец — там порядка нет.
Но вот оказывается некоторым плагина надо еще кудато пристраиваться.
Тот же редактор отчётов, куда поместить «Сохранить отчёт», «Открыть отчёт»? Ессно лучьше место — это меню «Файл»…
← →
Reindeer Moss Eater © (2007-08-30 13:58) [30]Хорошо можешь написать такую команду типа: «„Добавь пункт «Открыть» в меню «Файл»“».
function InsertMenuItem(const AItemName,ARefname : string; AInsertBefore : boolean) : integer;
begin
end;
Ну написал и чо?
← →
Сергей М. © (2007-08-30 13:59) [31]
> Тот же редактор отчётов, куда поместить «Сохранить отчёт»,
> «Открыть отчёт»? Ессно лучьше место — это меню «Файл»
И это ты называешь УСТОЯВШИМСЯ меню ?
Мдя ...
← →
Kolan © (2007-08-30 14:01) [32]> ARefname
Это что?
> Ну написал и чо?
При меню:Новый
Выход
Что должен сделать вызов:InsertMenuItem("Файл", "Открыть", "Сохранить");
?
Просто объясни тк я не понимаю.
ЗЫ
Мож ARefname я неверно истолковал…
← →
Сергей М. © (2007-08-30 14:02) [33]Колян, тебе надо серьезно поработать над изучением УСТОЯВШИХСЯ принципов организации UI многодокументных приложений (MDI)
Иначе продать свой бардак тебе придется себе в убыток)
← →
Kolan © (2007-08-30 14:02) [34]> И это ты называешь УСТОЯВШИМСЯ меню ?
>
> Мдя …
Устоявшийся структурой меню…
Да. «Сохранить отчёт» нельзя вставить после «Выход» — тк это идиотизм…
← →
Сергей М. © (2007-08-30 14:04) [35]
> Да. «Сохранить отчёт» нельзя вставить после «Выход» — тк
> это идиотизм
"Идиотизм" есть уже само наличие слова "Отчет" в меню "Файл")
← →
Reindeer Moss Eater © (2007-08-30 14:05) [36]Просто объясни тк я не понимаю.
Создать новый элемент с именем AItemName.
Найти элемент с именем ARefName.
Если нашли, взять индекс найденного и выполнить инсерт с этим индексом.
Если параметр "вставить перед" был false, то взять следующий элемент после найденного и делать инсерт с его индексом.
← →
Kolan © (2007-08-30 14:06) [37]> многодокументных приложений
У меня не MDI вроде…
А где прочесть? Может я ошибаюсь… Поясните что не так?
Вот реальный пример:
http://delphimaster.net/view/1-1188460255/
Плагин-редактор отчетов ему надо чтобы сохранить как было всегда доступно… Куда поместить это «сохранить отчёт как…» у меня идея одна — гл. меню…
← →
Kolan © (2007-08-30 14:11) [38]> «Идиотизм» есть уже само наличие слова «Отчет» в меню «Файл»)
Вот в Windows media есть «Открыть» и «открыть URL» URL — идиотизм?
А где прочесть как надо? И что делать в том конкретном примере что я привел?
Я кажется начинаю понимать… Вы намикаете что нужен только 1 пункт «Сохранить»
а что он сохранит отчёт, или еще что-то зависит от контекста, так?Reindeer Moss Eater © (30.08.07 14:05)
Ясно, нехватает только: «а если не нашли»…
← →
Сергей М. © (2007-08-30 14:11) [39]
> Куда поместить это «сохранить отчёт как…»
Ну начерта здесь слово "отчет" ?
Чем "Сохранить как .." принципиально отличается от "Сохранить отчет как ..", при условии что юзер выбирая некий пункт меню для сохранения знает, что речь сейчас идет именно об отчете (активном док-те, с которым он работает), а не о каком-то док-те иного типоназначения ?
← →
Сергей М. © (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.74 MB
Время: 0.06 c