|
Вопрос # 2 745/ вопрос открыт / |
|
Здравствуйте, эксперты!
Почитал я вопросы, чуть не уснул, но подобного вопроса не нашел. Так вот, суть вопроса в том, что на форме есть кнопка, и есть контекстное меню, которое вызывается в определенных координатах при нажатии на эту кнопку. Ближе к делу, это не столь важно, как то что к примеру у меня 30 пунктов в этом меню, и мне хотелось бы чтобы список не был таким большим, а появлялся бы скролинг или строилось в несколько столбиков (это более подходит). Или вообще был бы не плохой вариант как в квипе кнопка смайлов. В приложении (не знаю надо или нет) событие кнопки...
Приложение: Переключить в обычный режим- procedure TMF.BitBtn1Click(Sender: TObject);
- var
- Point: TPoint;
- begin
- Point.X := 0;
- Point.Y := 0;
- SmileMenu.Popup(BitBtn1.ClientToScreen(Point).X, BitBtn1.ClientToScreen(Point).Y);
- end;
 |
Вопрос задал: Ozz (статус: Посетитель)
Вопрос отправлен: 8 мая 2009, 16:05
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 8 мая 2009, 17:27; участников в обсуждении: 2.
|
Вадим К (статус: Академик), 8 мая 2009, 16:38 [#1]:
Скроллинг у стандартного меню по запросу - это наврядли. Всё таки его отрисовкой занимается система, а не делфи. Сделать как меню смайлов - можно. Для этого нужна ручная отрисовка меню. Но это достаточно сложно, если надо в несколько столбиков.
Но на самом деле там никакое не меню. Там обычная форма... Просто она дополнительно обрабатывает сообщение потери фокуса и закрывается. И без заголовка (bsNone). Дальше продолжать или уже понятно, как писать код?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ozz (статус: Посетитель), 8 мая 2009, 17:13 [#2]:
Объяснять не надо, да и перерисовывать ничего не надо, нашел более просто способ создания нескольких столбиков, в свойствах пункта меню (который должен находиться уже в следующем столбике) указываем свойство BREAK в значение mbBarBreak.
Т.е. к примеру три пункта идут в первом столбике, на четвертом пункте указываем данное свойство и все последующие пункты идут уже в следующем столбике и т.д.
|
|
Вадим К (статус: Академик), 8 мая 2009, 17:20 [#3]:
Да, можно так. Правда выглядит оно со стороны не очень красиво... Также нужно следить постоянно за разбивкой...
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Ozz (статус: Посетитель), 8 мая 2009, 17:27 [#4]:
Согласен, но на мелочах тоже не охото заморачиваться.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|