Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/51: Рейтинг темы: голосов - 51, средняя оценка - 4.63
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537

Visual C++ Studio 2010 для начинающих :)

04.01.2011, 12:28. Показов 9795. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет сем!
Начал осваивать Visual Studio 2010, перейдя с C++Builder 2010.
У меня такой вопрос.
В C++Builder было всегда 2 файла:
Заголовочный, к примеру Form1.h и Cpp, с кодом, Form.cpp
В заголовочном соотвественно функции, к примеру
C++ Скопировано
1
void __fastcall Draw();
Ну и сама функция пишется уже в cpp файле:
C++ Скопировано
1
void __fastcall TForm1::Draw() {... };
Ну и впрочем в Delphi так же.
В Visaul Studio вообще другая структура.
Создал я проект WidowsForms, при вызове обработчика события он сразу автоматом направляет на заголовочный файл. В заголовочном файле писать код вообще не рекомендуется.
Cpp файла я вообще для форм не нашёл, разве что только WindowsForm.cpp.
Поясните пожалуйста со структурой Нормаьлного даже учебниа не нашёл ((
===================================
WindowsForms.cpp:
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// WindowsForm.cpp: главный файл проекта.
 
#include "stdafx.h"
#include "Form1.h"
 
using namespace WindowsForm;
 
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 
    
    // Создание главного окна и его запуск
    Application::Run(gcnew Form1());
    return 0;
}
 
void  Form1::Drawing()
{
//  Form1->Canvas;  
}
Form1.h:
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
#pragma once
 
namespace WindowsForm {
 
    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
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
        void Drawing();
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
 
    protected: 
 
 
    private: System::Windows::Forms::ColorDialog^  colorDialog1;
    private: System::Windows::Forms::MenuStrip^  menuStrip1;
    private: System::Windows::Forms::ToolStripMenuItem^  менюToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  создатьToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  документToolStripMenuItem;
    private: System::Windows::Forms::ToolStripSeparator^  toolStripMenuItem1;
    private: System::Windows::Forms::ToolStripMenuItem^  выходToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  правкаToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  цветToolStripMenuItem;
    private: System::Windows::Forms::ToolStripMenuItem^  toolStripMenuItem2;
    private: System::Windows::Forms::Button^  button1;
    private: System::Windows::Forms::RichTextBox^  R1;
    private: System::Windows::Forms::ColorDialog^  colorDialog2;
 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->colorDialog1 = (gcnew System::Windows::Forms::ColorDialog());
            this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
            this->менюToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->создатьToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->документToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->toolStripMenuItem1 = (gcnew System::Windows::Forms::ToolStripSeparator());
            this->выходToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->правкаToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->цветToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->toolStripMenuItem2 = (gcnew System::Windows::Forms::ToolStripMenuItem());
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->R1 = (gcnew System::Windows::Forms::RichTextBox());
            this->colorDialog2 = (gcnew System::Windows::Forms::ColorDialog());
            this->menuStrip1->SuspendLayout();
            this->SuspendLayout();
            // 
            // menuStrip1
            // 
            this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(3) {this->менюToolStripMenuItem, 
                this->правкаToolStripMenuItem, this->toolStripMenuItem2});
            this->menuStrip1->Location = System::Drawing::Point(0, 0);
            this->menuStrip1->Name = L"menuStrip1";
            this->menuStrip1->Size = System::Drawing::Size(533, 24);
            this->menuStrip1->TabIndex = 2;
            this->menuStrip1->Text = L"menuStrip1";
            // 
            // менюToolStripMenuItem
            // 
            this->менюToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(3) {this->создатьToolStripMenuItem, 
                this->toolStripMenuItem1, this->выходToolStripMenuItem});
            this->менюToolStripMenuItem->Name = L"менюToolStripMenuItem";
            this->менюToolStripMenuItem->Size = System::Drawing::Size(53, 20);
            this->менюToolStripMenuItem->Text = L"Меню";
            // 
            // создатьToolStripMenuItem
            // 
            this->создатьToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(1) {this->документToolStripMenuItem});
            this->создатьToolStripMenuItem->Name = L"создатьToolStripMenuItem";
            this->создатьToolStripMenuItem->Size = System::Drawing::Size(117, 22);
            this->создатьToolStripMenuItem->Text = L"Создать";
            // 
            // документToolStripMenuItem
            // 
            this->документToolStripMenuItem->Name = L"документToolStripMenuItem";
            this->документToolStripMenuItem->Size = System::Drawing::Size(128, 22);
            this->документToolStripMenuItem->Text = L"Документ";
            // 
            // toolStripMenuItem1
            // 
            this->toolStripMenuItem1->Name = L"toolStripMenuItem1";
            this->toolStripMenuItem1->Size = System::Drawing::Size(114, 6);
            // 
            // выходToolStripMenuItem
            // 
            this->выходToolStripMenuItem->Name = L"выходToolStripMenuItem";
            this->выходToolStripMenuItem->Size = System::Drawing::Size(117, 22);
            this->выходToolStripMenuItem->Text = L"Выход";
            this->выходToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::выходToolStripMenuItem_Click);
            // 
            // правкаToolStripMenuItem
            // 
            this->правкаToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(1) {this->цветToolStripMenuItem});
            this->правкаToolStripMenuItem->Name = L"правкаToolStripMenuItem";
            this->правкаToolStripMenuItem->Size = System::Drawing::Size(59, 20);
            this->правкаToolStripMenuItem->Text = L"Правка";
            // 
            // цветToolStripMenuItem
            // 
            this->цветToolStripMenuItem->Name = L"цветToolStripMenuItem";
            this->цветToolStripMenuItem->Size = System::Drawing::Size(109, 22);
            this->цветToolStripMenuItem->Text = L"Цвет...";
            // 
            // toolStripMenuItem2
            // 
            this->toolStripMenuItem2->Name = L"toolStripMenuItem2";
            this->toolStripMenuItem2->Size = System::Drawing::Size(12, 20);
            // 
            // button1
            // 
            this->button1->FlatStyle = System::Windows::Forms::FlatStyle::Flat;
            this->button1->Location = System::Drawing::Point(446, 304);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(75, 23);
            this->button1->TabIndex = 3;
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // R1
            // 
            this->R1->BorderStyle = System::Windows::Forms::BorderStyle::None;
            this->R1->Location = System::Drawing::Point(12, 27);
            this->R1->Name = L"R1";
            this->R1->ScrollBars = System::Windows::Forms::RichTextBoxScrollBars::ForcedBoth;
            this->R1->Size = System::Drawing::Size(509, 257);
            this->R1->TabIndex = 4;
            this->R1->Text = L"";
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(533, 339);
            this->Controls->Add(this->R1);
            this->Controls->Add(this->button1);
            this->Controls->Add(this->menuStrip1);
            this->MainMenuStrip = this->menuStrip1;
            this->Name = L"Form1";
            this->Text = L"Мое первое приложение";
            this->menuStrip1->ResumeLayout(false);
            this->menuStrip1->PerformLayout();
            this->ResumeLayout(false);
            this->PerformLayout();
 
        }
#pragma endregion
    private: System::Void выходToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {Close();
             }
private: 
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
colorDialog1->RunDialog();
 
         }
};
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2011, 12:28
Ответы с готовыми решениями:

Visual Studio 2010
Панель элементов windows form стала не активна в любом проэкте( как включить?

Структура проекта в Visual Studio 2010
Создал проект в виде формы с кнопками и различными элементами, но при ее программировании все действия c элементами записываются в .h файл...

Visual Studio 2010 вызов формы.
Здравствуйте, обращаюсь с таким вопросом, учусь программировать до этого писал в Builder 6. Перешел на Visual Studio 2010. Попробовал в...

17
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.01.2011, 12:39
DanUnited, в MS как раз и решили писать код в *.h файлах форм, поэтому там где создался обработчик - там и пишите
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
04.01.2011, 14:30  [ТС]
C точки зрения безопасности это норм ??

Добавлено через 1 час 2 минуты
Ещёодин вопрос, вот пишу я программу, простая смена фона в текстовом редакторе при помощи ColorDialog:
C++ Скопировано
1
2
3
4
5
 ColorDialog^ MyDialog = gcnew ColorDialog();
             MyDialog->AllowFullOpen = false ;
             MyDialog->ShowHelp = true ;
             MyDialog->ShowDialog();
             R1->SelectionBackColor = MyDialog->Color;
Правильно ли я написал ? На код
C++ Скопировано
1
2
 if(MyDialog->ShowDialog()){
             R1->SelectionBackColor = MyDialog->Color;}
Компилятор выдаёт ошибку

Добавлено через 27 минут
P.S. и очень интересно узнать где объявлять глобальные переменные ((
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
04.01.2011, 23:41
Цитата Сообщение от DanUnited Посмотреть сообщение
C++ Скопировано
1
if(MyDialog->ShowDialog())
Вообще-то тут вы должны проверять, что возвращается DialogResult равный OK


Цитата Сообщение от DanUnited Посмотреть сообщение
и очень интересно узнать где объявлять глобальные переменные ((
Что есть глобальные переменные с точки зрения ООП?
0
22 / 22 / 2
Регистрация: 06.12.2010
Сообщений: 125
05.01.2011, 04:01
вообще, там в коде полно названий элементов формы на кириллице. конечно, мелкософт это вроде как допускает, но всё же лучше этого не делать. название элемента и его текст - разные вещи. а русские названия в переменных - потенциальный геморрой. сам же запаришься потом с кодировками (крайне сложно найти ошибки с буквами из другого языка в коде), а впоследствии будут проблемы с экспортом, если потребуется делать библиотеки: не будет никакой совместимости с другими компиляторами.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
05.01.2011, 08:38
Iron Bug, а это - очередная тупая фишка MS. Если при добавлении нового MenuItem на MenuStrip назвать этот айтем кириллицей, то он по дефолту и добавит кириллическое название в код
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
05.01.2011, 13:19  [ТС]
Да, про кириллицу новости не порадовали... ((
Что сказать про переменную. Глобальная переменная с моей точки зрения - это переменная, являющаяся членом класса public, доступной из вне методом extern. С другой стороны, я даже не мог нигде объявить переменную вне данной функции. К примеру при вызове создания вкладки у меня есть переменная index, которая считает их кол-во. Данная переменная должна быть вне функции, я её объявлял в public, private, вне класса вообще, везде объявлял компилятор ошибку
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
05.01.2011, 14:04
Цитата Сообщение от DanUnited Посмотреть сообщение
WidowsForms
Если не ошибаюсь, WindowsForms - это не С++ =) Это C++/CLI - эдакий выкидышь гюрзы и змея горыныча. Поэтому там все можно =)

Добавлено через 1 минуту
Цитата Сообщение от DanUnited Посмотреть сообщение
C точки зрения безопасности это норм ??
вообще.. что касается классов, то написание кода метода в .h файле делает это метод кандидатом на inline, не более того. Но компилятор оставляет за собой право решать: делать inline или нет (большие методы делать не будет). Поэтому мне так думается, что на безопасность это никоим образом не повлияет. =)
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
05.01.2011, 14:05  [ТС]
Я пробовал Win32 Application создавать приложение, но там форма программируется без ООП, вс1 ручками ))) Вот ацтой ) Ориентироваться на форме же нереально
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.01.2011, 14:29
DanUnited, А все ручками и надо. Формошлепство в топку.
1
Заблокирован
05.01.2011, 14:49
Цитата Сообщение от DanUnited Посмотреть сообщение
Я пробовал Win32 Application создавать приложение, но там форма программируется без ООП, вс1 ручками ))) Вот ацтой ) Ориентироваться на форме же нереально
И ты после таких слов надеешься стать программистом??? ...Чтож мир получил еще одну кодообезьянку
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
05.01.2011, 14:50  [ТС]
Ручками надо когда уже в ООП мастер и знаешь наизусть все свойства и мтоды всех компонентов наизусть, тогда твоя самая сложная задача будет только верно вслепую угадать и разместить всё это дело
Вот VC++ хре*ь ), у них даже подсказки Ctrl+Space в этом деле не предусмотренно, скавчивал крякнутую фигню какуе-то ассистент ((((
0
Заблокирован
05.01.2011, 14:55
Цитата Сообщение от DanUnited Посмотреть сообщение
Ручками надо когда уже в ООП мастер и знаешь наизусть все свойства и мтоды всех компонентов наизусть, тогда твоя самая сложная задача будет только верно вслепую угадать и разместить всё это дело
Вот VC++ хре*ь ), у них даже подсказки Ctrl+Space в этом деле не предусмотренно, скавчивал крякнутую фигню какуе-то ассистент ((((
Причем тут ООП и GUI ??? Ты вообще не понимаешь об чем говоришь
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
05.01.2011, 15:14
Цитата Сообщение от DanUnited Посмотреть сообщение
Ручками надо когда уже в ООП мастер и знаешь наизусть все свойства и мтоды всех компонентов наизусть, тогда твоя самая сложная задача будет только верно вслепую угадать и разместить всё это дело
Вот VC++ хре*ь ), у них даже подсказки Ctrl+Space в этом деле не предусмотренно, скавчивал крякнутую фигню какуе-то ассистент ((((
для тебя программирование - покидать кнопку на форму и привязать обработчик событий, поэтому ты пишешь в билдере. Все что ты можешь разработать это GUI оболочку, мб когда-нибудь поймешь какая сила скрыта в Visual Studio подсказки есть, и еще классная штука как MSDN
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
05.01.2011, 15:28  [ТС]
панеслося...
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
05.01.2011, 16:12
DanUnited, Окэ. По ООП просто пару вопросов. Можешь продемонстрировать основные понятия?
1) Инкапсуляция
2) Полиморфизм
Ну хотя бы эти два. Обычным кодом на С++/C#/Java. Да на чем угодно, поддерживающем ООП

Если не сможешь - стоит почитать хоть что-то по ООП.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
05.01.2011, 17:11
 Комментарий модератора 
Давайте не устраивать тут холивары и не отклоняемся от темы



Цитата Сообщение от DanUnited Посмотреть сообщение
Глобальная переменная с моей точки зрения - это переменная, являющаяся членом класса public, доступной из вне методом extern. С другой стороны, я даже не мог нигде объявить переменную вне данной функции. К примеру при вызове создания вкладки у меня есть переменная index, которая считает их кол-во. Данная переменная должна быть вне функции, я её объявлял в public, private, вне класса вообще, везде объявлял компилятор ошибку
Вы не смогли объявить паблик переменную? Какую ошибку получили?
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
05.01.2011, 17:14  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
DanUnited, Окэ. По ООП просто пару вопросов. Можешь продемонстрировать основные понятия?
1) Инкапсуляция
2) Полиморфизм
Ну хотя бы эти два. Обычным кодом на С++/C#/Java. Да на чем угодно, поддерживающем ООП

Если не сможешь - стоит почитать хоть что-то по ООП.
мдя книжки читал )
Вы не смогли объявить паблик переменную? Какую ошибку получили?
упс, всё заработало.... и в private норм, и в public )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.01.2011, 17:14
Помогаю со студенческими работами здесь

Visual Studio 2010 C Graphic Basics (GDI+)
День добрый, форумчане. Есть одна задача, а именно : &quot;В PictureBox случайно выбираются 2 точки. Соединить эти 2 точки случайной...

Visual Studio 2010 Windows Forms OpenFileDialog
Здравствуйте! Создаю стандартное Windows Forms приложение в Visual Studio 2010. На форму кидаю, допустим, кнопку или текстовое поле. ...

MS Visual Studio 2010.с++.хочу создать текстовый редактор
windows Forms ..подскажите как написать код для кнопки.. открывать . с функцией openFileDialog1

создание в Visual Studio 2010 графической оболочки к программке на с++
Есть скомпилированная программа, вопрос как соединить в проекте файлы .cpp и Windous Forms?

Игра Ping Pong в Windows Forms (Visual Studio 2010)
Приветствую всех кто решил помочь мне с игрой по С++, я должен сделать банальный пинг понг. :-| Суть в том, что макет я сделал как он...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Работа с объемным DOM в javascript
Htext 04.04.2025
Сегодня прочитал статью тут о расходах памяти в JS, ее утечках и т. п. И вот что вспомнил из своей недавней практики. Может, кому пригодится. Хотя, в той статье об этом тоже есть. Дело в том, что я. . .
Оптимизация производительности Node.js с помощью кластеризации
run.dev 04.04.2025
Масштабирование приложений для обработки тысяч и миллионов запросов — обыденная задача для многих команд. Node. js, благодаря своей асинхронной событийно-ориентированной архитектуре, стал популярной. . .
Управление зависимостями в Python с Poetry
py-thonny 04.04.2025
Стандартный инструмент для установки пакетов в Python - pip - прекрасно справляется с базовыми сценариями: установил пакет командой pip install и используешь его. Но что произойдёт, когда разные. . .
Мониторинг с Prometheus в PHP
Jason-Webb 04.04.2025
Prometheus выделяется среди других систем мониторинга своим подходом к сбору и хранению метрик. В отличие от New Relic, который использует агентный подход и отправляет данные во внешнее хранилище,. . .
Пакет Context в Golang: Управление потоками и ресурсами
golander 04.04.2025
Работа с горутинами в Go часто напоминает управление непослушными детьми - они разбегаются кто куда, делают что хотят и не всегда завершаются вовремя. К счастью, в Go 1. 7 появился пакет context,. . .
Контейнеризация React приложений с Docker
Reangularity 03.04.2025
Контейнеризация позволяет упаковать приложение со всеми его зависимостями в автономный контейнер, который можно запустить на любой платформе с установленным Docker. Это существенно упрощает процессы. . .
Свой попап в SwiftUI
mobDevWorks 03.04.2025
SwiftUI, как декларативный фреймворк от Apple, предоставляет множество инструментов для создания пользовательских интерфейсов. В нашем распоряжении есть такие API как alerts, popovers, action sheets. . .
Антипаттерны микросервисной архитектуры
ArchitectMsa 03.04.2025
Хорошо спроектированная микросервисная система может выдержать испытание временем, оставаясь гибкой, масштабируемой и устойчивой к большинству проблем. Такая архитектура обладает высоким уровнем. . .
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер