Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

выпадающее меню у кнопки ToolButton1 [D7, 2000, XP]


Мурзилка ©   (2006-05-04 10:29:00) 

Помогите вот с таким вопросом. Есть панель управления, на которой лежит кнопка ToolButton1 у которой Style = tbsDropDown и есть PopupMenu1 которое подключено к этой кнопке как выпадающее меню. Т.е. рядом с кнопкой ToolButton1 есть черный треугольник, по нажатию на который выпадает меню PopupMenu1. А вот по нажатию на самой кнопке меню не  выпадает.
Подскажите, как сделать, чтобы  меню выпадало как по нажатию на черный треугольник (это работает), так и по нажатию на самок кнопке ToolButton1.
Заранее спасибо


Мурзилка   (2006-05-04 11:34:00) [1]

>Elen, ЮЮ

огромное спасибо, все работает.
тема закрыта


Elen   (2006-05-04 11:22:00) [2]

Мурзилка. Можно и так как показано у ЮЮ
Есть вариант применять эти функции :

//********** FUNCTION **********
function XMouse;
var t:tpoint;
begin
windows.GetCursorPos(t);result:=t.X;
end;
//********** END FUNCTION ******
//********** FUNCTION **********
function YMouse;
var t:tpoint;
begin
windows.GetCursorPos(t);result:=t.y;
end;
//********** END FUNCTION ******

Ymouse и XMouse вернут абсолютную координату мышки
Эти числа подставь в PopUp
и меню выпадет возле мышки


ЮЮ   (2006-05-04 11:15:00) [3]

procedure TForm1.ToolButton2Click(Sender: TObject);
var
 p: TPoint;
begin
 p.X := 0;
 p.Y := TToolButton(Sender).Height;
 p := TToolButton(Sender). ClientToScreen(p);
 TToolButton(Sender).PopupMenu.Popup(p.X, p.Y);
end;


Elen   (2006-05-04 11:05:00) [4]

Тогда могу предложить код определения глобальных координат курсора мыши. будеш их подставлять как координаты и меню выпадет рядом с курсором мышки. Давать?


Мурзилка   (2006-05-04 10:56:00) [5]

>Elen
c DropdownMenu.Popup я уже экспериментировал, это ни к чему не приводит, т.к. я не могу узнать абсолютные координаты кнопки на экране (верхнего левого угла). В твоем примере, теряется у Left толщена границы формы, а у Top теряется высота заголовка окна. Дело в том, что это можно подобрать, как ты написал, но, а если пользователь сменит тему экрана, то толщина границы и высота заголовка формы поменяются, тогда меню уже будет сдвинуто. А хочется строго под нижним левым углом кнопки.
Как же быть?


Elen   (2006-05-04 10:41:00) [6]

Мурзилка попробуй следующий код вставить в клик ToolButton1 :

TToolButton(sender).DropdownMenu.Popup(TToolButton  (sender).Left+form1.Left,  TToolButton(sender).top+form1.Top+25);

Здесь 25 это отступ от края твоей формы подбери его как надо


Наверх

Титульная страница Поиск, карта сайта Написать письмо