Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Очень нада, помогите   Найти похожие ветки 

 
FREEMAX   (2002-10-14 01:49) [0]

Для Вас вопрос наверное несложный, а я незнаю как изменить цвет всплывающего меню (MainMenu). Подскажите очень надо.


 
Юрий Зотов ©   (2002-10-14 01:59) [1]

Вопрос как раз непростой. Это системный цвет и изменить его в отдельно взятой программе не так-то легко. Нужно рисовать меню "ручками" - см. свойство TMenu.OwnerDraw и события TMenuItem.OnDrawItem, TMenuItem.OnAdvancedDrawItem, TMenuItem.OnMeasureItem, а также свойства и методы TCanvas.


 
FREEMAX   (2002-10-14 02:04) [2]

Ого не знал что все так непросто, я попытаюсь спасибо за ответ. Да если не сложно напишите хоть код, ну это если не сложно, а так ина етом спасибо.:)


 
Юрий Зотов ©   (2002-10-14 03:43) [3]

Вот пример.

type
TForm1 = class(TForm)
PopupMenu: TPopupMenu;
Item1: TMenuItem;
Item2: TMenuItem;
Item3: TMenuItem;
procedure FormCreate(Sender: TObject); // OnCreate
private
procedure DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
i: integer;
begin
with PopupMenu, Items do
begin
OwnerDraw := True;
for i := 0 to Count - 1 do Items[i].OnDrawItem := DrawItem
end
end;

procedure TForm1.DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
const
Colors: array[boolean] of TColor = (clNavy, clYellow);
begin
with ACanvas do
begin
Brush.Color := Colors[Selected];
Font.Color := Colors[not Selected];
TextRect(ARect, ARect.Left + 4, ARect.Top + 1, StripHotkey(TMenuItem(Sender).Caption))
end
end;



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
3-78302
Werewolfru
2002-10-03 15:40
2002.10.24
Чистка базы с сохранением структуры таблиц?


1-78341
novarm44
2002-10-12 01:33
2002.10.24
Использование SetBitmapBits с динамическим массивом


14-78647
Tornado
2002-10-04 08:16
2002.10.24
Кто сколько зарабатывает?


1-78484
ligor
2002-10-13 13:27
2002.10.24
Показать форму после появления основной формы программы


6-78577
vitnt2000
2002-08-16 10:58
2002.10.24
Как программно поменять IP адрес?