Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 4

Разработка визуального компонента TButtonMenu

01.12.2009, 08:16. Показов 1364. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуста разработать визуальный компонент TButtonMenu.Объясние как разработать компонент с функциональностью стандартной кнопки TButton и возможностью подключения всплывающего меню при нажатии. Всплывающее меню должно появляться в месте расположения кнопки на форме проектирования.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.12.2009, 08:16
Ответы с готовыми решениями:

Разработка визуального компонента TCheckGroup
Разработка визуального компонента TCheckGroup. Разработать визуальный компонент набор чекбоксов. По функционалу компонент должен быть...

Создание визуального компонента наследника базового компонента
Добрый день! В VS 2005 было возможно создать элемент Windows Forms control library на базе стандартного элемента, скажем Button. Я...

Создание визуального компонента
Подскажите на базе какого класса создавать визуальный компонент для рисования который должен иметь события клавиатуры и мыши ? нужен...

7
 Аватар для Harlequin
42 / 42 / 7
Регистрация: 08.11.2009
Сообщений: 167
01.12.2009, 15:30
попап меню создай
и в свойствах батона выбери его как попап меню
0
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 4
03.12.2009, 13:38  [ТС]
объясни по конкретнее пожалуйста, как? чего?, просто я пень в делфи...(
0
Техник
 Аватар для DenProx
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
03.12.2009, 16:46
f1om, положите на форму компонент - PopupMenu , отредактируйте необходимым образом, в свойствах Button - PopupMenu, выберете - Ваш PopupMenu1....
0
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 4
04.12.2009, 00:15  [ТС]
проблема в том что мне нужно чтобы это было в одном компоненте.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
04.12.2009, 12:01
проблема в том что мне нужно чтобы это было в одном компоненте
не надо заморачиваться на пустом месте. Такой компонент конечно безусловно можно написать самому, но только боюсь что Вам пока что эт не нужно... Эффект от нового компонента, будет точно такой же, как от того что Вам посоветовали... Если Вам нужно точное появление popup под кнопкой, то воспользуйтесь регулировкой координат в соответствии с положением кнопки.
0
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 4
26.06.2011, 01:22
помогите, пожалуйста, с аналогичным заданием
мне нужно сделать объявление попапменю в published'e самой компоненты (а не в объект инспекторе)

вот код компонента:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
unit UnitButtonMenu;
 
interface
 
uses
  SysUtils, Classes, Controls, StdCtrls, Menus, Forms, Windows;
 
type
  TButtonMenu = class(TButton)
  procedure OnClick(Sender: TObject);
 
  private
    FPopupMenu: TPopupMenu;
  published
    property PopupMenu: TPopupMenu read FPopupMenu write FPopupMenu;
 
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  RegisterComponents('Samples', [TButtonMenu]);
end;
 
procedure TButtonMenu.OnClick(Sender: TObject);
 var
   popupPoint : TPoint;
 begin
   if Assigned(FPopupMenu) then
   begin
     popupPoint.X := Left + Width div 2 ;
     popupPoint.Y := Top + Height div 2 ;
     popupPoint := ClientToScreen(popupPoint) ;
     FPopupMenu.Popup(popupPoint.X, popupPoint.Y) ;
   end;
  end;
 
end.
на пустую форму кидаю этот компонент и PopupMenu, но список так и не появляется при нажатии (

Добавлено через 39 минут
или вот рабочий код, но нужно:
- переделать наследуемый класс TFrame на TButton
- и опять же в паблишед добавить связь со внешним попапменю
(мои попытки это сделать - чуть выше =) )

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
unit UnitButtonMenu;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls;
 
type
  TButtonMenu = class(TFrame)
    MenuButton: TButton;
    procedure MenuButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
implementation
 
{$R *.dfm}
 
procedure TButtonMenu.MenuButtonClick(Sender: TObject);
 var
   popupPoint : TPoint;
 begin
   if Assigned(PopupMenu) then
   begin
     popupPoint.X := MenuButton.Left + MenuButton.Width div 2 ;
     popupPoint.Y := MenuButton.Top + MenuButton.Height div 2 ;
     popupPoint := ClientToScreen(popupPoint) ;
     PopupMenu.Popup(popupPoint.X, popupPoint.Y) ;
   end;
  end;
 
end.
0
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 4
27.06.2011, 18:49
вопрос все еще актуален)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2011, 18:49
Помогаю со студенческими работами здесь

Инкапсуляция визуального компонента
Подскажите, есть ли способ инкапсулировать визуальный компонент в невизуальный класс?

Выбор визуального компонента
Подскажите каким компонентом и как отображать результаты функции. Необходимо, чтобы на форме отображались результаты, как в консоли.

Создание визуального компонента
Всем доброго дня. Господа, нужна помощь в создании своего визуального компонента. В C++ Builder 10.3 сделал на основе TCGauge свой...

Определить название визуального компонента
Ребят, подскажите как сделать такое же меню ?

Определение визуального компонента Visual Studio
Здравствуйте. Помогите пожалуйста определить компоненту, с помощью которого построены эти два интерфейса. Поскольку один из них...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru