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

Настройка цвета и шрифта при нажатии разными клавишами мыши

13.11.2012, 12:57. Показов 1996. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать компонент - потомок TPanel, позволяющая настраивать цвет при нажатии левой клавиши мыши и шрифта при правой. как ето организовать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2012, 12:57
Ответы с готовыми решениями:

Изменение размера шрифта при нажатии кнопок мыши
Помогите дуре! Я облазила весь интернет, не нашла ниодного долбанного примера, осталось сделать эту программу и мои мучения окончатся. Но,...

Изменение цвета и шрифта кнопок формы при нажатии на кнопку
Изменение цвета и шрифта кнопок формы при нажатии на кнопку

Изменение цвета фона символов при нажатии кнопок мыши
Задание: .286 data SEGMENT merr db 13,10,13,10,'Mouse can not be initialized$' rowcolor db 1 columncolor ...

10
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
13.11.2012, 14:30
сделать потомка панели с методом он клик в котором проверять какая клавиша нажата и выбрасывать диалог цвета или диалог шрифта с последующим присвоением соответствующим свойствам панели

Добавлено через 19 секунд
...правда делать ради этого наследника это жесть.. хватило бы просто обработчиков
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 32
13.11.2012, 14:36  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
сделать потомка панели с методом он клик в котором проверять какая клавиша нажата и выбрасывать диалог цвета или диалог шрифта с последующим присвоением соответствующим свойствам панели

Добавлено через 19 секунд
...правда делать ради этого наследника это жесть.. хватило бы просто обработчиков
так в том и жесть что нужно через наследие
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
13.11.2012, 14:42
ну унаследуйте раз уж так хотят, порадуйте людей. надеюсь только что это динамический наследник. или они хотят увидеть его на панели компонент??
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 32
13.11.2012, 14:56  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
ну унаследуйте раз уж так хотят, порадуйте людей. надеюсь только что это динамический наследник. или они хотят увидеть его на панели компонент??
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class Tg : public TPanel
{
public:
 int d;
 __fastcall Tg(TComponent *Owner);
 void __fastcall Click(TObject *Sender);
 
};
__fastcall Tg::Tg(TComponent *Owner):TPanel(Owner) {}
 void __fastcall Tg::Click(TObject *Sender)
        {
        ((Tg*)Sender)->Caption = "T2";
        }
 Tg *df = new Tg(Form1);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Panel1Click(TObject *Sender)
{
 
df->Parent = Panel1;  //where load
df->Font->Style=Canvas->Font->Style<<fsBold<<fsUnderline;  //font type loaded
df->Font->Size=16;                                         //font size loaded 16
df->Font->Name="Magneto";                                 //font loaded garniture
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::ContexPopup(TObject *Sender, TPoint &MousePos,bool &Handled)
{
df->Parent = Form1;  //where load
//df->Font->Style=Canvas->Font->Style<<fsBold<<fsUnderline;  //font type loaded
df->Font->Size=16;                                         //font size loaded 16
df->Font->Name="Magneto";                                  //font loaded garniture
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::N2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N4Click(TObject *Sender)
{
ShowMessage(Date());
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Exit1Click(TObject *Sender)
{
                    Close();
}
//---------------------------------------------------------------------------
вот мой код но панелка дописевается а не меняет шрифт
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
13.11.2012, 15:46
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class my_panel: public TPanel
{
private:
    TColorDialog *ColorDialog;
    TFontDialog *FontDialog;
public:
    __fastcall virtual my_panel(TComponent* AOwner):
        TPanel(AOwner),
        ColorDialog(new TColorDialog(0)),
        FontDialog(new TFontDialog(0))
    {
        OnMouseDown = MouseDown;
    }
    __fastcall ~my_panel(void)
    {
        delete ColorDialog;
        delete FontDialog;
    }
    void __fastcall MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
        if (Button == mbLeft)
        {
            if (!ColorDialog->Execute()) return;
            Font->Color = ColorDialog->Color;
        }
        else if (Button == mbRight)
        {
            if (!FontDialog->Execute()) return;
            Font = FontDialog->Font;
        }
    }
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
        __fastcall ~TForm1(void);
 
        my_panel *p;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner),
          p(new my_panel(0))
{
    p->Parent = this;
    p->Caption = "my panel";
    p->Left = 100;
    p->Top = 100;
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1(void)
{
    delete p;
}
//---------------------------------------------------------------------------
2
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 32
13.11.2012, 18:20  [ТС]
Цитата Сообщение от vxg Посмотреть сообщение
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class my_panel: public TPanel
{
private:
    TColorDialog *ColorDialog;
    TFontDialog *FontDialog;
public:
    __fastcall virtual my_panel(TComponent* AOwner):
        TPanel(AOwner),
        ColorDialog(new TColorDialog(0)),
        FontDialog(new TFontDialog(0))
    {
        OnMouseDown = MouseDown;
    }
    __fastcall ~my_panel(void)
    {
        delete ColorDialog;
        delete FontDialog;
    }
    void __fastcall MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
        if (Button == mbLeft)
        {
            if (!ColorDialog->Execute()) return;
            Font->Color = ColorDialog->Color;
        }
        else if (Button == mbRight)
        {
            if (!FontDialog->Execute()) return;
            Font = FontDialog->Font;
        }
    }
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
        __fastcall ~TForm1(void);
 
        my_panel *p;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner),
          p(new my_panel(0))
{
    p->Parent = this;
    p->Caption = "my panel";
    p->Left = 100;
    p->Top = 100;
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1(void)
{
    delete p;
}
//---------------------------------------------------------------------------
ошибку викидает
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
13.11.2012, 18:24
Цитата Сообщение от azex Посмотреть сообщение
ошибку викидает
Error? Если Warning - это нормально
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 32
13.11.2012, 18:52  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
Error? Если Warning - это нормально
шас еще раз так ваще никаких действий нет. тупо обичная панель без действий

Добавлено через 14 минут
Цитата Сообщение от nick42 Посмотреть сообщение
Error? Если Warning - это нормально
все нашол свою ошибку

Добавлено через 29 секунд
Цитата Сообщение от vxg Посмотреть сообщение
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class my_panel: public TPanel
{
private:
    TColorDialog *ColorDialog;
    TFontDialog *FontDialog;
public:
    __fastcall virtual my_panel(TComponent* AOwner):
        TPanel(AOwner),
        ColorDialog(new TColorDialog(0)),
        FontDialog(new TFontDialog(0))
    {
        OnMouseDown = MouseDown;
    }
    __fastcall ~my_panel(void)
    {
        delete ColorDialog;
        delete FontDialog;
    }
    void __fastcall MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
        if (Button == mbLeft)
        {
            if (!ColorDialog->Execute()) return;
            Font->Color = ColorDialog->Color;
        }
        else if (Button == mbRight)
        {
            if (!FontDialog->Execute()) return;
            Font = FontDialog->Font;
        }
    }
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
        __fastcall ~TForm1(void);
 
        my_panel *p;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner),
          p(new my_panel(0))
{
    p->Parent = this;
    p->Caption = "my panel";
    p->Left = 100;
    p->Top = 100;
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1(void)
{
    delete p;
}
//---------------------------------------------------------------------------
спасибо
0
0 / 0 / 0
Регистрация: 06.11.2012
Сообщений: 32
19.11.2012, 18:47  [ТС]
Цитата Сообщение от nick42 Посмотреть сообщение
Error? Если Warning - это нормально
можеш поправить етот код плз?
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//---------------------------------------------------------------------------
ето unit.h
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
//---------------------------------------------------------------------------
class my_panel: public TPanel ///reg class to TPanel
{
private:
TImage *Image; // load image
TMemo *Memo; //load font memo
TOpenDialog *OpenDialog;
public:
__fastcall virtual my_panel(TComponent* AOwner): //fastcalls my_panel
TPanel(AOwner),
Image(new TImage(0)), //run image
OpenDialog(new TOpenDialog(0)),
Memo(new TMemo(0)) //run memo
{
OnMouseDown = MouseDown; //option muse
}
__fastcall ~my_panel(void) //fastcall destructor my_panel
{
delete OpenDialog;
delete Image; //die image
delete Memo; //die memo
}
void __fastcall MouseDown(TObject *Sender, ///reg function to press eny button in muse
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbLeft) //if press left button in muse
{
if (!OpenDialog->Execute()) return;
LoadFormFile = Image1->Picture->LoadFromFile(Form1->OpenDialog->FileName);
}
else if (Button == mbRight) //if press right button muse
{
if (!OpenDialog->Execute()) return;
Memo1->Lines->LoadFromFile(Form1->OpenDialog1->FileName);
}
}
};
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
__fastcall ~TForm1(void);
 
my_panel *p; //rereg my_panel to p from fust started
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
ето unit.cpp
 
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner),
p(new my_panel(0)) //load new my_panel class
{
p->Parent = this;
p->Caption = "My option function"; //Name panel
p->Left = 50; //go in the left
p->Top = 40; //go in up
p->Width = 320; //Width panel
p->Height=240; //Height panel
}
//---------------------------------------------------------------------------
__fastcall TForm1::~TForm1(void) //load destructor
{
delete p; //delete p
}
//------
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
19.11.2012, 22:18
код поправил; но делать вашу задачу я не собираюсь.
Вложения
Тип файла: txt Unit1.cpp.txt (952 байт, 6 просмотров)
Тип файла: txt Unit1.h.txt (2.0 Кб, 6 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2012, 22:18
Помогаю со студенческими работами здесь

При выборе из списка цвета и атрибута шрифта изменять цвет и различные атрибуты шрифта надписи
Создайте приложение, в котором при выборе из списка соответствующего цвета и атрибута шрифта изменяются соответственно цвет и различные...

При нажатии средней кнопки мыши, а также при нажатии на ссылки в браузере Firefox открываются рекламные сайты
При нажатии средней кнопки мыши, а также при нажатии на ссылки в браузере Firefox открываются рекламные сайты Антивирус касперского...

Вывод и удаление символа в координатах курсора мыши при нажатии на кнопки мыши
У меня есть вот такая задача: ПРи нажатии правой кнопки мыши обеспечить вывод на монитор по координатах x y курсора некторого символа ,...

Изменение курсора мыши при нажатии на кнопки мыши
Здравствуй. Задача сделать программу работы с мышью, отображение курсоров мыши. Суть такая запускаем программу отображается курсор, при...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru