Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MainMenu 
:(
    Опции темы
sadisasha
Дата 3.3.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 15.12.2006

Репутация: нет
Всего: нет



Ребята подскажите, а можно сделать так чтобы при наведении курсора на пункт меню он бы выделялся не рамкой, а цветомuser posted image
Возможно ли это? А ещё как сделать MainMenu шире.
PM MAIL   Вверх
Kbl4AH
Дата 3.3.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Цитата(sadisasha @  3.3.2009,  12:47 Найти цитируемый пост)
 А ещё как сделать MainMenu шире.

Читерский вариант - добавь в Caption пробелы...
PM MAIL ICQ   Вверх
sadisasha
Дата 3.3.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 15.12.2006

Репутация: нет
Всего: нет



Цитата(Kbl4AH @ 3.3.2009,  13:07)
Цитата(sadisasha @  3.3.2009,  12:47 Найти цитируемый пост)
 А ещё как сделать MainMenu шире.

Читерский вариант - добавь в Caption пробелы...

Да нет саму панель.
PM MAIL   Вверх
Poseidon
Дата 3.3.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



sadisasha, так скиншоте просто в винде изменен стиль оформления. У меня при измененном стиле обычное меню так же выделяется.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 3.3.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Цитата(Poseidon @  3.3.2009,  13:34 Найти цитируемый пост)
sadisasha, так скиншоте просто в винде изменен стиль оформления. У меня при измененном стиле обычное меню так же выделяется.

Это не из-за стиля... у меня при одной и той же теме в разных программах выделяется по-разному...
PM MAIL ICQ   Вверх
Kbl4AH
Дата 3.3.2009, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



ОБЯЗАТЕЛЬНО в Object Inspector поставь значение True свойству OwnerDraw компонента MainMenu!!!
Код

// курсор над пунктом меню - цвет аква, иначе - цвет формы
procedure TForm1.N11AdvancedDrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; State: TOwnerDrawState);
var
  S: string;
begin
  if odHotLight in State then
  begin
    ACanvas.Brush.Color := clAqua;
    ACanvas.Pen.Color := ACanvas.Brush.Color;
  end;
  if not(odHotLight in State) then
  begin
    ACanvas.Brush.Color := Form1.Color;
    ACanvas.Pen.Color := ACanvas.Brush.Color;
  end;
  ACanvas.Rectangle(ARect);
  s:= StringReplace((Sender as TMenuItem).Caption,'&','',[]);
  ACanvas.TextOut(ARect.Left + 3, ARect.Top + 3, s);
end;

// ширина пункта меню
procedure TForm1.N11MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width,
  Height: Integer);
begin
  Width := 100;
end;


Это сообщение отредактировал(а) Kbl4AH - 3.3.2009, 15:37
PM MAIL ICQ   Вверх
sadisasha
Дата 3.3.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 15.12.2006

Репутация: нет
Всего: нет



Цитата(Kbl4AH @ 3.3.2009,  15:34)
ОБЯЗАТЕЛЬНО в Object Inspector поставь значение True свойству OwnerDraw компонента MainMenu!!!
Код

// курсор над пунктом меню - цвет аква, иначе - цвет формы
procedure TForm1.N11AdvancedDrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; State: TOwnerDrawState);
var
  S: string;
begin
  if odHotLight in State then
  begin
    ACanvas.Brush.Color := clAqua;
    ACanvas.Pen.Color := ACanvas.Brush.Color;
  end;
  if not(odHotLight in State) then
  begin
    ACanvas.Brush.Color := Form1.Color;
    ACanvas.Pen.Color := ACanvas.Brush.Color;
  end;
  ACanvas.Rectangle(ARect);
  s:= StringReplace((Sender as TMenuItem).Caption,'&','',[]);
  ACanvas.TextOut(ARect.Left + 3, ARect.Top + 3, s);
end;

// ширина пункта меню
procedure TForm1.N11MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width,
  Height: Integer);
begin
  Width := 100;
end;

Да нет что то не то maimenu перестаёт быть объемным  а:
Код

// ширина пункта меню
procedure TForm1.N11MeasureItem(Sender: TObject; ACanvas: TCanvas; var Width,
  Height: Integer);
begin
  Width := 100; // или Height := 100;
end;

меняет размер самого пункта меню и не может быть шире самого компонента. А мне надо чтобы компанент MainMenu был шире.
Может есть какие нибудь дополнительные нестандартные компаненты? 
PM MAIL   Вверх
Snowy
Дата 3.3.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



TActionMainMenuBar
PM MAIL   Вверх
Kbl4AH
Дата 3.3.2009, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Цитата(sadisasha @  3.3.2009,  15:57 Найти цитируемый пост)
меняет размер самого пункта меню и не может быть шире самого компонента. А мне надо чтобы компанент MainMenu был шире.

шире чего?
PM MAIL ICQ   Вверх
xfoby
Дата 9.3.2009, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 21.2.2009
Где: Анапа

Репутация: нет
Всего: нет



Цитата(Kbl4AH @ 3.3.2009,  16:13)
Цитата(sadisasha @  3.3.2009,  15:57 Найти цитируемый пост)
меняет размер самого пункта меню и не может быть шире самого компонента. А мне надо чтобы компанент MainMenu был шире.

шире чего?

Похоже, имеется ввиду высота самой полоски меню? Со стандартными можно немного увеличить используя TToolBar, но там без отрисовки не обойтись

Это сообщение отредактировал(а) xfoby - 9.3.2009, 02:29
PM MAIL WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.