![]() |
|
|
#1
|
|||
|
|||
|
как изменить шрифт в MainMenu?
т.е. как сделать меню более крупным, заметным подскажите пожалуйста я читала на форуме ответ на подобную тему...но там кратко не получилось реализовать... может кто то объяснит подробнее) Последний раз редактировалось Иринкаа, 26.03.2009 в 21:47. |
|
#2
|
|||
|
|||
|
вот это я нашла...
"Надо у меню назначить OwnerDraw := true и для всех итемов этого меню назначить обработчики событий OnDrawItem/OnAdvancedDrawItem/OnMeasureItem и в них канве назначать нужный шрифт. Однако, можно поступить еще проще — изменить у объекта Screen свойство MenuFont. Третий вариант — написать своего потомка TMenuItem со свойством Font с перекрытым методом AdvancedDrawItem, либо у существующих итемов подменять каким-либо образом этот метод своим." что такое объект Screen??? |
|
#3
|
|||
|
|||
|
точнее где именно прописывать про screen...
когда я прописывала Canvas.Font.Size:=10; шрифт менялся...но происходил смещение слов слов в меню..часть исчезало...ав оьщем фигня получается... |
|
#4
|
|||
|
|||
|
Используйте компонент TRyMenu! Там можно поставить шрифт, размер и стиль.
На сайте был пример его использования... Рисуется красивое меню, даже пользователям Vista (где тоже красивое меню ) становится завидно ![]() |
|
#5
|
|||
|
|||
|
Цитата:
скачала я TRyMenu... и как его применять? он запускается как потдельный проект дельфи... (у меня дельфи 7) Последний раз редактировалось Иринкаа, 27.03.2009 в 17:23. |
|
#6
|
|||
|
|||
|
Копируете файлы RyMenu.pas и RyMenu.dcu в папку с проектом.
В своем проекте: 1) В public приписываем событие "constructor Create(AOwner: TComponent); override;" 2) После implemation пишем: Код:
constructor TMainForm.Create(AOwner: TComponent); begin inherited; RyMenu.Add(MainMenu); // Меню RyMenu.MinHeight:= 23; // Минимальная высота итема меню RyMenu.Font.Name:= 'Arial'; // Шрифт RyMenu.Font.Size:= 9; // Размер шрифта end; OwnerDraw у меню поставить в True! P.S. Вообще у RyMenu много свойств. Поэксперементируйте ![]() |
|
#7
|
|||
|
|||
|
н-да...
у меня почему то не получается добавить TRyMenu как новый компонет... в какой вкладке он должен появиться? строго не судите) наверное, моя 3-я работа дельфи...и последняя))) |
|
#8
|
|||
|
|||
|
Ничего подобного делать не надо
![]() Просто скидываем в папку с программой файлы RyMenus. В Uses нужного Unit'а прописываем RyMenus. Ну и дальше то, что я описал. Для примера простенький код: Код:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Menus, RyMenus;
type
TMainForm = class(TForm)
{ Здесь идут различные компоненты, процедуры и функции }
public
constructor Create(AOwner: TComponent); override;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
{ Меню в стиле RyMenu }
constructor TMainForm.Create(AOwner: TComponent);
begin
inherited;
RyMenu.Add(MainMenu);
RyMenu.MinHeight:= 23;
RyMenu.Font.Name:= 'Arial';
RyMenu.Font.Size:= 8;
end;
end.Помню когда я писал свой третий проект Delphi. Я тогда знал еще меньше, чем вы сейчас ![]() |
|
#9
|
|||
|
|||
|
учитывайте, что это мой дипломный проект)))))
становится веселее....просто специальность и диплом больше с экономической направленностью... я вообще сделала сейчас менюшку с помощью кнопок, причем со всплывающими пунктами... зрительно получилось вполне прилично) а мне как раз надо чтобы преподу визуально понравилось...чтобы были четко видны слова он тоже в программировании ни буб, бум...но попробую и через RyMenus...может получше будет) |
|
#10
|
|||
|
|||
|
Удачи в написании
![]() Если будут еще проблемы, обращайтесь на форум. Тут много знающих ![]() |
|
#11
|
|||
|
|||
|
вот в этой строке возникает ошибка
RyMenu.Add(MainMenu); какой параметр у этой процедуры? Что должно обозначаться под MainMenu?? Последний раз редактировалось Иринкаа, 29.03.2009 в 18:12. |
|
#12
|
|||
|
|||
|
MainMenu - имя вашего Menu. По стандарту MainMenu1.
Не забудьте у этого самого Menu поставить OnwerDraw в True. |
|
#13
|
|||
|
|||
|
Цитата:
я вообще так и подумала...и прописала RyMenu.Add(MainMenu1); ошибка -нет актуальныхх параметров само меню на форме имеется)) свойство OnwerDraw стоит как true |
|
#14
|
|||
|
|||
|
Как я понимаю у вас другая версия RyMenu. У меня самая стабильная, насколько я знаю. Прикладываю...
Скопируйте эти файлы и замените ими уже существующие в папке с проектом. После этого должно работать. |
|
#15
|
|||
|
|||
|
спасибо) с этим все получилось)))
только, подскажите, какое свойство RyMenu отвечает за ширину, которая отводится для 1 элемента заголовка а то у меня шрифт увеличился, а названия пунктов не помещаются...только начала... |