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

Вниз

выпадающее меню у кнопки ToolButton1   Найти похожие ветки 

 
Мурзилка   (2006-05-04 10:29) [0]

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


 
Elen ©   (2006-05-04 10:41) [1]

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

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

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


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

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


 
Elen ©   (2006-05-04 11:05) [3]

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


 
ЮЮ ©   (2006-05-04 11:15) [4]

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:22) [5]

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

//********** 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:34) [6]

>Elen, ЮЮ

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



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
2-1146048231
EdSin
2006-04-26 14:43
2006.05.21
Работа с TTreeView


2-1146573121
49 Cent
2006-05-02 16:32
2006.05.21
Вопрос по клонированию


2-1146853003
I like it
2006-05-05 22:16
2006.05.21
азы


15-1145624942
oldman
2006-04-21 17:09
2006.05.21
Надо заполнить таблицу. Очень надо! :(


2-1146162824
Strate
2006-04-27 22:33
2006.05.21
Добавление обработчика события в кнопку Run-Time