С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для Timoshka_
2 / 2 / 0
Регистрация: 30.10.2010
Сообщений: 84

Функция определения цвета по номеру

10.10.2011, 11:51. Показов 2878. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте , задание такое - нужно создать форму и кнопку далее сделать чтобы кнопка и форма меняли цвета по разному(rand),никак не могу найти эту функцию чтобы определяла цвет, и куда ее ставить? заранее благодарю!

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
94
#pragma once
#include <stdio.h>
 
namespace laba2 {
    string
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using std::srand;
    using std::rand;
 
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///          конструкторы не смогут правильно работать с локализованными
    ///          ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            srand(time(0));
            int rand_1=rand();
            int rand_2 =rand()%10;
            this->button1->BackColor = System::Drawing::SystemColors::ControlDark;
            this->button1->Location = System::Drawing::Point(141, 85);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = false;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(290, 268);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {MessageBox::Show("привет ");
             }
    };
}
Добавлено через 19 часов 30 минут
эх, помогите кто знает(((
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.10.2011, 11:51
Ответы с готовыми решениями:

Функция для определения числа Фибоначчи по его номеру
Задание: Написать функцию, которой на вход подаётся целое число - номер числа Фибоначчи, на выходе - значение числа Фибоначчи с этом...

Функция для определения числа Фибоначчи по его номеру
Задание: Написать функцию, которой на вход подаётся целое число - номер числа Фибоначчи, на выходе - значение числа Фибоначчи с этом...

Функция для определения индекса нестандартного цвета
Имеется 2 функции для определения индекса цвета Function CellColorIndex(r As Range) Application.Volatile CellColorIndex =...

6
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
10.10.2011, 12:49
C++
1
2
3
4
5
6
System::Random^ Randomizer = gcnew System::Random();  //Создание генератора случайных чисел
int R = Randomizer->Next(0, 255);  //Это будет красный компонент
int G = Randomizer->Next(0, 255);  //Это будет зелёный компонент
int B = Randomizer->Next(0, 255);  //Это будет синий компонент
//myColor - цвет, образованный смешением красного, зелёного и синего компонентов.
System::Drawing::Color^ myColor = System::Drawing::Color::FromArgb(R, G, B);
Далее меняем цвет формы и кнопку
C++
1
2
this->BackColor = myColor;
this->button1->BackColor = myColor;
1
 Аватар для Timoshka_
2 / 2 / 0
Регистрация: 30.10.2010
Сообщений: 84
10.10.2011, 13:27  [ТС]
а не подскажите куда это вписать?

Добавлено через 2 минуты
и нужно ли объявлять их как-нибудь?

Добавлено через 6 минут
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
94
95
96
97
#pragma once
 
 
namespace My {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    ///
    /// Внимание! При изменении имени этого класса необходимо также изменить
    ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
    ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
    ///          конструкторы не смогут правильно работать с локализованными
    ///          ресурсами, сопоставленными данной форме.
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
            System::Random^ Randomizer = gcnew System::Random();  //Создание генератора случайных чисел
            int R = Randomizer->Next(0, 255);  //Это будет красный компонент
            int G = Randomizer->Next(0, 255);  //Это будет зелёный компонент
            int B = Randomizer->Next(0, 255);  //Это будет синий компонент
            //myColor - цвет, образованный смешением красного, зелёного и синего компонентов.
            System::Drawing::Color^ myColor = System::Drawing::Color::FromArgb(R, G, B);
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(69, 62);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(124, 67);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            this->button1->BackColor = myColor;// 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(290, 268);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
            this->BackColor = myColor;
 
 
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {MessageBox::Show("Привет !");
             }
    };
}
вот так? пишет 2 ошибки что mycolor не объявила, а как это сделать можно?
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
10.10.2011, 14:03
Да нет. Оба куска кода, которые я написал - это одна функция. Вставьте всё в событие button1_Click или в конструктор Form1(void)

Например цвет будет меняться по нажатию кнопки:
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
94
#pragma once
 
 
namespace My {
 
        using namespace System;
        using namespace System::ComponentModel;
        using namespace System::Collections;
        using namespace System::Windows::Forms;
        using namespace System::Data;
        using namespace System::Drawing;
 
        /// <summary>
        /// Сводка для Form1
        ///
        /// Внимание! При изменении имени этого класса необходимо также изменить
        ///          свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса,
        ///          связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае,
        ///          конструкторы не смогут правильно работать с локализованными
        ///          ресурсами, сопоставленными данной форме.
        /// </summary>
        public ref class Form1 : public System::Windows::Forms::Form
        {
        public:
                Form1(void)
                {
                        InitializeComponent();
                        //
                        //TODO: добавьте код конструктора
                        //
                }
 
        protected:
                /// <summary>
                /// Освободить все используемые ресурсы.
                /// </summary>
                ~Form1()
                {
                        if (components)
                        {
                                delete components;
                        }
                }
        private: System::Windows::Forms::Button^  button1;
 
        private:
                /// <summary>
                /// Требуется переменная конструктора.
                /// </summary>
                System::ComponentModel::Container ^components;
 
    #pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(69, 62);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(124, 67);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(290, 268);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
        }
    #pragma endregion
 
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        System::Random^ Randomizer = gcnew System::Random();  //Создание генератора случайных чисел
            int R = Randomizer->Next(0, 255);  //Это будет красный компонент
            int G = Randomizer->Next(0, 255);  //Это будет зелёный компонент
            int B = Randomizer->Next(0, 255);  //Это будет синий компонент
            //myColor - цвет, образованный смешением красного, зелёного и синего компонентов.
            System::Drawing::Color myColor = System::Drawing::Color::FromArgb(R, G, B);
        this->BackColor = myColor;
        this->button1->BackColor = myColor;
         }
    };
}
Ещё ошибся я здесь:
C++
1
System::Drawing::Color^ myColor = System::Drawing::Color::FromArgb(R, G, B);
Надо так:
C++
1
System::Drawing::Color myColor = System::Drawing::Color::FromArgb(R, G, B);
2
 Аватар для Timoshka_
2 / 2 / 0
Регистрация: 30.10.2010
Сообщений: 84
10.10.2011, 14:19  [ТС]
ой спасибо!!!!!! а допустим сделать так чтобы они по-разному меняли цвета, чтобы кнопка отличалась от формы, надо наверно в этой строке что-то поменять?
C++
1
this->button1->BackColor = myColor;
Добавлено через 4 минуты
или надо отдельно две функции mycolor2 допустим создать?
0
Эксперт .NET
 Аватар для novikov.ea
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
10.10.2011, 14:21
Тогда нужно переопределять цвета для каждого случая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
            System::Random^ Randomizer = gcnew System::Random();  //Создание генератора случайных чисел
            int R = Randomizer->Next(0, 255);  //Это будет красный компонент
            int G = Randomizer->Next(0, 255);  //Это будет зелёный компонент
            int B = Randomizer->Next(0, 255);  //Это будет синий компонент
            //myColor - цвет, образованный смешением красного, зелёного и синего компонентов.
            System::Drawing::Color myColor = System::Drawing::Color::FromArgb(R, G, B);
            this->BackColor = myColor;
 
            //******** Вот здесь я переопределяю R, G, B и myColor ********//
            R = Randomizer->Next(0, 255);
            G = Randomizer->Next(0, 255);
            B = Randomizer->Next(0, 255);
            myColor = System::Drawing::Color::FromArgb(R, G, B);
 
            //******** На кнопку вставляю новый myColor ********//
            this->button1->BackColor = myColor;
         }
1
 Аватар для Timoshka_
2 / 2 / 0
Регистрация: 30.10.2010
Сообщений: 84
10.10.2011, 14:32  [ТС]
спасибочки!!! ВЫ очень добрый))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.10.2011, 14:32
Помогаю со студенческими работами здесь

Выбор: По номеру вывести название цвета радуги
Дано число К от 1 до 7. По номеру вывести цвет радуги.Например 1- красный. Зарание спасибо за помощь)

Составить программу определения числа Фибоначчи по его номеру в последовательности
Числа Фибоначчи 1, 1, 2, 3, 5, 8, 13 и т.д. В общем случае числа Фибоначчи (fn) определяются формулами: f0=f1=1; fn=fn-1+fn-2 при n=2,3,......

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

Вывести название и код RGB для цвета по его номеру
Написать программу, которая в зависимости от порядкового номера цвета в спектре (1,2 ... 7) выводит его название (красный, оранжевый,...

По заданному номеру цвета радуги(числа от 1 до 7) вывести его название
По заданному номеру цвета радуги(числа от 1 до 7) вывести его название(красный - фиолетовый)


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru