Текущий архив: 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.46 MB
Время: 0.008 c