![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая вставка пунктов меню в «нужные» места, как?
Kolan © (2007-08-30 12:21:00)Здравствуйте,
Дано:
1. Допустим мы умеем вставлять пункт в гл. меню(и сепараторы тоже умеем). Сейчас умеем вставлять только в конец меню.
2. Нам дают пять пунктов: «Новый», «Открыть», «Сохранить», «Сохранить как », «Выход».
3. Причм пункты дают в произвольном порядке и в разные мом времени, из разных мест программы.
Задание:
Вставить данные пункты в «правильном» порядке. Правидьный порядок такой:
Новый
-
Открыть
-
Сохранить
Сохранить как
-
Выход
Проблемма:
Понятно, что с учетом(1) пункты вставяться как попало
Вопрос:
Как модифицировать алгоритм вставки чтобы добится желаемого.
ЗЫ
У меня идей нет :(
Сергей М. (2007-08-30 13:34:00) [61]
> посылают команду
Куда и кому посылают ? "На деревню дедушке" что ли ?)
Reindeer Moss Eater (2007-08-30 13:32:00) [62]Именно незнает. Вставляющие меню находятся в пакетах и посылают команду «Вставь пункт „Открыть“», они даже незнаю вставилось там что-то или нет…
А передать из пакета, что вставить надо перед таким-то пунктом или после такого-то пункта кто тебе мешает?
Kolan (2007-08-30 13:31:00) [63]> не знает, или не хочет знать?
Именно незнает. Вставляющие меню находятся в пакетах и посылают команду «Вставь пункт Открыть», они даже незнаю вставилось там что-то или нет
Darkwingg (2007-08-30 13:30:00) [64]а для чего это нужно? поясните пожалуйста. Может быть:
1. просто делать неактивными ненужные пункты?
или
2. в коде программы, где осуществляется вставка, перебирать существующие индексы, пока не будет найден тот, который должен перед вставляемым
3. содержать некую структуру (массив) в которой отмечать событие вставки\удаления. по ней легко можно определить место.
Reindeer Moss Eater (2007-08-30 13:30:00) [65]Как их перебрать?
Уже смеяться, или еще будет солво "лопата" ?
Kolan (2007-08-30 13:29:00) [66]> перебери уже существующие пункты. неужели непонятно?
Конечно нет.
Есть меню
Новый
-
Открыть
-
Сохранить как…
-
Выход
Куда вставить «Сохранить»?
Как их перебрать? Как я объясню компу, что «Сохранить» должно идти ДО уже существующего «Сохранить как…»?
Reindeer Moss Eater (2007-08-30 13:28:00) [67]Иными словами, тот кто инициирует вставку незнает куда вставлять пункт…
не знает, или не хочет знать?
Kolan (2007-08-30 13:27:00) [68]Иными словами, тот кто инициирует вставку незнает куда вставлять пункт
Может какието секции придумать. «Секция» пусть будут пункты от сепаратора до сепоратора. Как то так:
(1)Новый
-
(2)Открыть
-
(3)Сохранить
Сохранить как…
-
(4)Выход
Ии при вставке указывать желаемую секцию
Reindeer Moss Eater (2007-08-30 13:25:00) [69]Так какой же указать 3 или 1?
Вот что я придумать не могу…
перебери уже существующие пункты. неужели непонятно?
Kolan (2007-08-30 13:22:00) [70]> Indicates the index of the menu item within its parent menu.
Ок, вы меня не поняли. Мне нужен алгоритм(за св-во благодарю не знал)
Поясняющая задача:
Допустим есть два участка кода, в которых добавляются пункты.
В первом «Открыть» во втором «Сохранить»
Вы мне говорите: «Укажи мол индекс»
Хорошо, но каккой?
Когда я добавляю пункт «Сохранить» какой задать индекс? 3?
-Да, если меню такое:
(1)Открыть
(2)-
(3)Сохранить
А если команду «открыть» не дбавляли то 1:
(1)Сохранить
Так какой же указать 3 или 1?
Вот что я придумать не могу
Сергей М. (2007-08-30 12:32:00) [71]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
Вася Правильный (2007-08-30 12:31:00) [72]property MenuIndex: Integer;
Indicates the index of the menu item within its parent menu.
Сергей М. (2007-08-30 12:30:00) [73]см. TMenuItem.Insert