Главная страница
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.044 c
15-1145764548
Der Nechk@ssoff
2006-04-23 07:55
2006.05.21
CRC


3-1143451965
Физик
2006-03-27 13:32
2006.05.21
Как правильно соединяться с базой данных под Personal Oracle?


15-1146224093
fasr2
2006-04-28 15:34
2006.05.21
Случайно был удален файл C: ntldr (WinXp NTFS)


2-1146661404
AlexanderMS
2006-05-03 17:03
2006.05.21
Проблема с ListBox


1-1144576845
Alex Romanskiy
2006-04-09 14:00
2006.05.21
Добавление картинки в ImageList из Image