Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Страницы:   1 2 3 4

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


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо