Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Внизвыпадающее меню у кнопки 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.014 c