Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 745

/ вопрос открыт /

Здравствуйте, эксперты!
Почитал я вопросы, чуть не уснул, но подобного вопроса не нашел. Так вот, суть вопроса в том, что на форме есть кнопка, и есть контекстное меню, которое вызывается в определенных координатах при нажатии на эту кнопку. Ближе к делу, это не столь важно, как то что к примеру у меня 30 пунктов в этом меню, и мне хотелось бы чтобы список не был таким большим, а появлялся бы скролинг или строилось в несколько столбиков (это более подходит). Или вообще был бы не плохой вариант как в квипе кнопка смайлов. В приложении (не знаю надо или нет) событие кнопки...

Приложение:
  1. procedure TMF.BitBtn1Click(Sender: TObject);
  2. var
  3. Point: TPoint;
  4. begin
  5. Point.X := 0;
  6. Point.Y := 0;
  7. SmileMenu.Popup(BitBtn1.ClientToScreen(Point).X, BitBtn1.ClientToScreen(Point).Y);
  8. end;


Ozz Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Ozz (статус: Посетитель)
Вопрос отправлен: 8 мая 2009, 16:05
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 8 мая 2009, 17:27; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 8 мая 2009, 16:38 [#1]:

Скроллинг у стандартного меню по запросу - это наврядли. Всё таки его отрисовкой занимается система, а не делфи. Сделать как меню смайлов - можно. Для этого нужна ручная отрисовка меню. Но это достаточно сложно, если надо в несколько столбиков.
Но на самом деле там никакое не меню. Там обычная форма... Просто она дополнительно обрабатывает сообщение потери фокуса и закрывается. И без заголовка (bsNone). Дальше продолжать или уже понятно, как писать код?
Галочка "подтверждения прочтения" - вселенское зло.
Ozz

Ozz (статус: Посетитель), 8 мая 2009, 17:13 [#2]:

Объяснять не надо, да и перерисовывать ничего не надо, нашел более просто способ создания нескольких столбиков, в свойствах пункта меню (который должен находиться уже в следующем столбике) указываем свойство BREAK в значение mbBarBreak.
Т.е. к примеру три пункта идут в первом столбике, на четвертом пункте указываем данное свойство и все последующие пункты идут уже в следующем столбике и т.д.
Вадим К

Вадим К (статус: Академик), 8 мая 2009, 17:20 [#3]:

Да, можно так. Правда выглядит оно со стороны не очень красиво... Также нужно следить постоянно за разбивкой...
Галочка "подтверждения прочтения" - вселенское зло.
Ozz

Ozz (статус: Посетитель), 8 мая 2009, 17:27 [#4]:

Согласен, но на мелочах тоже не охото заморачиваться.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.02 сек.