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

Вниз

графическое меню   Найти похожие ветки 

 
servs ©   (2003-07-03 20:43) [0]

Нужно сделать графическое меню (типа должно быть красивенько).
Накидали Image-ей, поставили картинки - все замечательно.
Когда подвели мышку - заменили на более яркую картинку. А когда менять обратно?

Я понимаю что это самый тупой метод, но его хватит.

Итак вопросы:
Как это нужно делать?
Как отслеживать то что мышка "ушала"?
Вообще стоит возиться с картинками или написать что-то на базе другого компонента?

Зы. Вообщем, подскажите куда двигаться.
Ззы. Чужие компоненты только с исходниками.


 
Poirot ©   (2003-07-03 20:49) [1]

См исходники самого класса TMenu! Там смотри обраьотчики события типа PAINT и мышковские... делается всё просто... для начала поставь меню в ОунДрау и правь события On.... что-то там Draw!!!!
Это для стандартных менюшек....


 
servs ©   (2003-07-03 20:53) [2]

Меню в смысле не стандартное.
А типа как делают в энциклопедиях, оболочках для МР3 сборников разных. Т.е лежать оно будет "посреди" формы.


 
Poirot ©   (2003-07-03 20:57) [3]

Тогда вообще просто!!!
Знаете как менять форму окна с стандартной на произвольную?
Теперь берём стд буттон и кидаем на него гимп, причём я точьно не помню в какой последовательности, но гимп состоять может из нескольких одинаковых пикторгам и каждая отражает своё состояние... ну и в принципе всё... или же грузить при каждом из необходимых событий нужные гимпы...
А потом по контуру картинки формирует красивую кнопочку....
Если вам надо что-то типа винампа, так с эти простой листбокс справится, только самому прорисовывать придётся - аналогично как с меню....


 
Dimaxx ©   (2003-07-03 23:53) [4]

Пиши на мыло - я скину тебе компонент XPMenu. Он аналогичен меню Office XP. Там сам посмотришь и сделаешь как тебе нужно.


 
Adil Aliev ©   (2003-07-04 00:16) [5]

Что то должен быть в DrawItem


 
servs ©   (2003-07-04 15:37) [6]

>Poirot ©

Спасибо, твой варант мне нравиться. А больлее детально про
"гимп состоять может из нескольких одинаковых пикторгам и каждая отражает своё состояние... " незнаешь где можно посмотреть?

>Dimaxx ©, Adil Aliev ©

Не то меню. XPMenu у немя где то есть


 
servs ©   (2003-07-04 16:07) [7]

Спасибо всем ответившим, проблемы решилась вот так:

...............

type
TVSImage = class(TImage)
private
{ Private declarations }
FOnMouseEnter: TNotifyEvent;
FOnMouseLeave: TNotifyEvent;
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;

procedure Register;

implementation

procedure TVSImage.CMMouseEnter(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseEnter) then
FOnMouseEnter(Self);
end;

procedure TVSImage.CMMouseLeave(var Message: TMessage);
begin
inherited;
if Assigned(FOnMouseLeave) then
FOnMouseLeave(Self);
end;

...........


 
Poirot ©   (2003-07-04 16:39) [8]


> >Poirot ©
>
> Спасибо, твой варант мне нравиться. А больлее детально про
>
> "гимп состоять может из нескольких одинаковых пикторгам
> и каждая отражает своё состояние... " незнаешь где можно
> посмотреть?

должно быть в МСДН! Ты посмотри на гимпы которые с делфими идут - там 2 картинки - первая отображается когда кнопка енадлед а вторая - дизаблед!!!



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
1-55494
Sfagnum
2003-07-02 14:31
2003.07.17
RichEdit выделение слова


1-55555
AndrewVolkov
2003-07-06 22:20
2003.07.17
Popupmenu в runtime


6-55687
Studentik
2003-05-13 13:58
2003.07.17
Запрос HTML для БД InterBase


14-55833
Blackweber
2003-07-01 10:49
2003.07.17
как запустить из батника несколько екзешников, без явного указани


1-55611
Пубертанец
2003-07-03 14:48
2003.07.17
Как узнать является ли свойство типа TDateTime?