Главная страница
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.062 c
4-1141246917
Alsan
2006-03-02 00:01
2006.05.21
Reg edit !!! Как добавить тихо ???


2-1146410086
Officeman
2006-04-30 19:14
2006.05.21
Сортировать числа от "min" к "max" (или наоборот)


15-1145780258
Spirit of RO
2006-04-23 12:17
2006.05.21
Random сообщение


15-1145858794
Spirit of RO
2006-04-24 10:06
2006.05.21
Используете ли вы


3-1143459151
Рустем
2006-03-27 15:32
2006.05.21
Можно ли отловить событие добавления записи в таблицу БД Access?