Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14

Разный caption на кнопке и в меню

02.12.2014, 20:37. Показов 2836. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать чтобы caption в меню и на кнопке был разный ?

Должно получиться вот так:
В MainMenu : Очистка реестра
На кнопке: ОЧИСТКА РЕЕСТРА большими буквами (Caps Lock)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2014, 20:37
Ответы с готовыми решениями:

Задать разный Caption для разных Button
Мне надо задать поле caption (разные циферки) для нескольких button. Можно это сделать через цикл? Покажите пример. Заранее спасибо.

Присвоение кнопке Caption
Есть MainMenu и кнопка. При нажатии на меню свойство Caption должно переноситься свойству Caption кнопки. Но при переносе почему-то...

Работа с меню. При клике на кнопке меню или вне его, меню должно закрываться
Добрый вечер! Изучаю JQuery. Вот ради развития решил написать меню, практически такое же как на Хабре. Два дня ломаю голову над тем, как...

29
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
02.12.2014, 22:03
Например, ручками. А что мешает? Они как-то связаны (общим Caption-ом)?
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
02.12.2014, 22:11  [ТС]
Цитата Сообщение от gunslinger Посмотреть сообщение
Например, ручками. А что мешает? Они как-то связаны (общим Caption-ом)?
Мешает не знание языка
Не давно начал изучать вот и тупик...
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
02.12.2014, 22:28
И причем тут знание языка.
Добавляешь на форму TButton и TMainMenu (вкладка Standart компонентов Toll Palette) и изменяешь в Object Inspector (инспектор объектов) требуемые параметры. Для MainMenu кликешь правой кнопкой на добавленный компонент и выбираешь Menu Designer.
А если тебе нужно сделать подобное программно, то рано еще. Продолжай изучение языка. Или жди более добрых людей, не люблю разжевывать основы, если это требует от меня дополнительных усилий.
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
02.12.2014, 22:48  [ТС]
Цитата Сообщение от gunslinger Посмотреть сообщение
И причем тут знание языка.
Добавляешь на форму TButton и TMainMenu (вкладка Standart компонентов Toll Palette) и изменяешь в Object Inspector (инспектор объектов) требуемые параметры. Для MainMenu кликешь правой кнопкой на добавленный компонент и выбираешь Menu Designer.
А если тебе нужно сделать подобное программно, то рано еще. Продолжай изучение языка. Или жди более добрых людей, не люблю разжевывать основы, если это требует от меня дополнительных усилий.
Там нет чтобы был разный размер шрифта как мне надо
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
02.12.2014, 23:03
Меняй Size (размер) Font-a (шрифта) для кнопки Button. Для меню не знаю.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.12.2014, 00:34
Daniasons, в конструкторе формы берешь текст с пункта меню, переводишь в верхний регистр и присваиваешь к тексту кнопки.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
03.12.2014, 09:25
Надо изначально установить какую-то однозначную связь между элементами меню и соответствующими им кнопками (какой-нибудь Tag, кусок названия). Потом пройтись по всем элементам меню и дальше как предлагает BRcr.
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 12:12  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
в конструкторе формы берешь текст с пункта меню, переводишь в верхний регистр и присваиваешь к тексту кнопки
Можете показать как это сделать,а то в упор не могу понять!
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
03.12.2014, 12:31
C++
1
Button1->Caption = (MenuItem1->Items[1]->Caption).UpperCase();
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 12:52  [ТС]
Цитата Сообщение от demmax2004 Посмотреть сообщение
Код C++
1
Button1->Caption = (MenuItem1->Items[1]->Caption).UpperCase();


C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::N1Click(TObject *Sender)
{
   Capt = ((TMenuItem *)Sender)->Caption;
   ((TMenuItem *)Sender)->Checked = true;
   X = ((TMenuItem *)Sender)->Tag;
   Button1->Caption = (TMenuItem->Items[1]->Caption).UpperCase();
   Button1->Enabled = true;
}
Не работает

======================================== ======================================== ========================
ОШИБКИ

Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "Unit1.cpp"
c:\program files (x86)\embarcadero\studio\15.0\bin\bcc32. exe -D_DEBUG -DUSEPACKAGES -n.\Win32\Debug -I"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\vcl";"c:\program files (x86)\embarcadero\studio\15.0\include";" c:\program files
(x86)\embarcadero\studio\15.0\include\di nkumware";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\crtl";"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\sdk";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\rtl";"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\vcl";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\fmx";"C:\Program Files
(x86)\FastReports\LibD21";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE7\Win32";C:\Users\Public\Documents\Emb arcadero\Studio\15.0\hpp\Win32 -y -Q -k
-r- -c -tR -tM -tW -C8 -o.\Win32\Debug\Unit1.obj -w-par -Od -v -vi- -H=.\Win32\Debug\Project1.pch -H Unit1.cpp
[bcc32 Error] Unit1.cpp(35): E2108 Improper use of typedef 'TMenuItem'
Full parser context
Unit1.cpp(31): parsing: void _fastcall TForm1::N1Click(TObject *)
Failed
Elapsed time: 00:00:00.1
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.12.2014, 12:55
Лучший ответ Сообщение было отмечено BRcr как решение

Решение

C++
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
class TForm1 : public TForm
{
__published: // IDE-managed Components
    TMainMenu *menu;
    TActionList *actlst_1;
    TAction *act_1;
    TAction *act_2;
    TAction *act_3;
    TButton *btn_1;
    TButton *btn_2;
    TButton *btn_3;
    TMenuItem *mnu;
    TMenuItem *mni_1;
    TMenuItem *mni_2;
    TMenuItem *mni_3;
    TButton *btn_make_captions;
    void __fastcall act_1Execute(TObject *Sender);
    void __fastcall btn_make_captionsClick(TObject *Sender);
 
public: // User declarations
    
 
    __fastcall TForm1( TComponent * Owner );
 
    __fastcall ~TForm1( )
    {
    }
 
} ;
C++
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
__fastcall TForm1::TForm1( TComponent * Owner ) :
    TForm( Owner )
{
    mni_1->Tag = reinterpret_cast < int > ( btn_1 );
    mni_2->Tag = reinterpret_cast < int > ( btn_2 );
    mni_3->Tag = reinterpret_cast < int > ( btn_3 );
}
 
// ---------------------------------------------------------------------------
 
void __fastcall TForm1::act_1Execute( TObject * Sender )
{
    ShowMessage( reinterpret_cast < TAction * > ( Sender )->Caption );
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::btn_make_captionsClick( TObject * Sender )
{
    TButton * btn;
    TMenuItem * mni;
    for ( int i( 0 ), i_limit( mnu->Count ); i < i_limit; ++i )
    {
        mni = mnu->Items[ i ];
        btn = reinterpret_cast < TButton * > ( mni->Tag );
        btn->Action = mni->Action;
        btn->Caption = mni->Caption.UpperCase( );
    }
}
Миниатюры
Разный caption на кнопке и в меню   Разный caption на кнопке и в меню  
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
03.12.2014, 13:02
У меня так

0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 13:17  [ТС]
Цитата Сообщение от demmax2004 Посмотреть сообщение
У меня так
Для пробы новый проект создал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
Button1->Caption = (TMenuItem->Items[1]->Caption).UpperCase();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

C++
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Menus.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TMainMenu *MainMenu1;
    TMenuItem *menu;
    TMenuItem *N1;
    TMenuItem *N2;
    TButton *Button1;
    void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


ОШИБКИ
Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "Unit1.cpp"
c:\program files (x86)\embarcadero\studio\15.0\bin\bcc32. exe -D_DEBUG -DUSEPACKAGES -n.\Win32\Debug -I"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\vcl";"c:\program files (x86)\embarcadero\studio\15.0\include";" c:\program files
(x86)\embarcadero\studio\15.0\include\di nkumware";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\crtl";"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\sdk";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\rtl";"c:\program files
(x86)\embarcadero\studio\15.0\include\wi ndows\vcl";"c:\program files (x86)\embarcadero\studio\15.0\include\wi ndows\fmx";"C:\Program Files
(x86)\FastReports\LibD21";"C:\Program Files (x86)\Raize\CS5\Lib\RS-XE7\Win32";C:\Users\Public\Documents\Emb arcadero\Studio\15.0\hpp\Win32 -y -Q -k
-r- -c -tR -tM -tU -tW -C8 -o.\Win32\Debug\Unit1.obj -w-par -Od -v -vi- -H=.\Win32\Debug\Project1.pch -H Unit1.cpp
[bcc32 Error] Unit1.cpp(15): E2108 Improper use of typedef 'TMenuItem'
Full parser context
Unit1.cpp(13): parsing: _fastcall TForm1::TForm1(TComponent *)
Failed
Elapsed time: 00:00:00.1
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
03.12.2014, 13:23
откуда откуда взял TMenuItem ??? Я ума не приложу

C++
1
Button1->Caption = (TMenuItem->Items[1]->Caption).UpperCase();
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
03.12.2014, 13:24
Daniasons, TMenuItem замени на N1, N2 или что там еще...
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 13:29  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
TMenuItem замени на N1, N2 или что там еще...
всё так сделано как писали,и всё равно не компируеться
в архиве пробный проект
Вложения
Тип файла: rar Test1.rar (4.03 Мб, 3 просмотров)
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 14:53  [ТС]
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::N1Click(TObject *Sender)
{
   Capt = ((TMenuItem *)Sender)->Caption;
   ((TMenuItem *)Sender)->Checked = true;
   X = ((TMenuItem *)Sender)->Tag;
   Button1->Caption = (N1->Items[1]->Caption).UpperCase();
   Button1->Enabled = true;
}
Код компилируется
При выборе пункта ошибка:menu index out of range
0
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
03.12.2014, 15:41
Значит неправильный индекс используешь, ты проверял имеется у тебя пункт меню с индексом 1 ?
0
0 / 0 / 0
Регистрация: 02.12.2014
Сообщений: 14
03.12.2014, 15:53  [ТС]
Цитата Сообщение от demmax2004 Посмотреть сообщение
Значит неправильный индекс используешь, ты проверял имеется у тебя пункт меню с индексом 1 ?
Проверено, есть такой индекс!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2014, 15:53
Помогаю со студенческими работами здесь

Выпадающее меню - разный размер шрифта для разных уровней меню
Есть у меня данный список, но возник вопрос: &quot;как сделать чтобы в надписи буквы1 был шрифт 19px, а в выпадающем меню был шрифт 16px&quot; ...

Вывод в edit caption итемов основного меню
Есть meinmenu, нужно както вывести в edit caption динамически создаваемого итема.

Разный цвет меню на разных страницах
на первом рисунке на ссылке home, при наведении всех ссылок в меню цвет ссылок березовый. нужно сделать, когда нахожусь по ссылке...

Разный размер текста главного меню до и после авторизации на сайте
До авторизации текст главного меню меньше, тоньше, чем после авторизации, как исправить? Какой код в css за это отвечает?

Можно ли в стандартном меню joomla 1.5 поставить разный размер шрифта на категории и подкатегории?
Можно ли в стандартном меню joomla 1.5 поставить разный размер шрифта на категории и подкатегории?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru