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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 1 722

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

Здравствуйте, уважаемые эксперты!У меня программно в приложении у SpeedButton создаётся PopupMenu. Кроме всех прочих компонентов на форме находится ImageList, в котором находятся различные текстурки для вкладок PopupMenu.Теперь вопрос как их мне програмно загружать во вкладки и как мне обратиться к их размерам,что бы например сделать их 250x50 по размеру текстурок. Да ещё и как менять программно шрифт.

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

Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 24 июня 2008, 18:36
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Мережников Андрей

Здравствуйте, GAZ!
Посмотрите http://www.delphiworld.narod.ru/
Статью "многострочный Combobox" можно использовать за основу решения Вашей проблемы (сделать по аналогии)

Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 25 июня 2008, 17:42
Оценка за ответ: 5

Комментарий к оценке: Ставлю 5 за OnDrawItem и OnMeasureItem (у меня в Delphi 2007 есть)Спасибо разобрался

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

Всего сообщений: 7; последнее сообщение — 26 июня 2008, 18:31; участников в обсуждении: 3.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 24 июня 2008, 21:56 [#1]:

Обращаться к размерам чего, текстурок или пунктов меню?
Для изменения шрифта можно попробовать отрисовку на канве
Вадим К

Вадим К (статус: Академик), 24 июня 2008, 23:41 [#2]:

Какие вкладки у PopupMenu?
Галочка "подтверждения прочтения" - вселенское зло.
GAZ

GAZ (статус: Посетитель), 25 июня 2008, 06:41 [#3]:

Вадиму К и Андрею Мережникову
.......
P := TPopupMenu.Create(Self);
SpeedButton1.PopupMenu := P;
.....
procedure T...Form. ...Click(Sender: TObject);
begin
if P <> nil then
begin
Item := TMenuItem.Create(P);
Item.Caption := 'Бла-бла-бла';//хочу написать другим шрифтом размером и стилем
P.Items.Add(Item);//хочу сделать размер Items 250x50 и загрузить в них текстурки
end;
end;
......
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 25 июня 2008, 16:19 [#4]:

Для того, чтобы написать другим шрифтом, размером и стилем используй событие OnDrawItem пункта меню (предварительно установив для popupmenu свойство OwnerDraw в true). Для задания размеров можно использовать событие OnMeasureItem (только в Delphi 2007 я его не нашел). В DelphiWorld была статья "Многострочный ComboBox" используй ее за основу
GAZ

GAZ (статус: Посетитель), 26 июня 2008, 06:04 [#5]:

Мережников Андрей
Что -то очень расплывчатая ссылка не нашёл я там эту статью. И я бы хотел немного переделать вопрос.Можно в Items поместить SpeedButton-ы,аналогичные тому к которому PopupMenu прицеплено.Дело в том что в них уже есть всё необходимое мне.
Вадим К

Вадим К (статус: Академик), 26 июня 2008, 09:41 [#6]:

Нет, нельзя в Items меню вставить SpeedButton.
Зачем вам в меню такие большие картинки? Лучше делать более-менее стандартный интерфейс. Или вы идёте согласно рекомендации Билла Гейтса - "не можешь сделать, что бы работало нормально, сделай, что бы выглядело хотя бы красиво"?
Галочка "подтверждения прочтения" - вселенское зло.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 26 июня 2008, 18:31 [#7]:

DelphiWorld \ Компоненты и классы\Списки\Многостроковый ComboBox

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

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