0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 4

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

01.12.2009, 08:16. Показов 1397. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru