Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.46 MB
Время: 0.013 c
4-1140876533
sco
2006-02-25 17:08
2006.05.21
Подождать закрытия другой программы


15-1145011286
WondeRu
2006-04-14 14:41
2006.05.21
Linux. Аналог "Windows для начинающих"?


15-1146141096
Харько
2006-04-27 16:31
2006.05.21
на что переходить?


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


2-1146630768
TaSk
2006-05-03 08:32
2006.05.21
Обработка ошибок и TWebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский