![digitalparticles | Embarcadero RAD Studio Delphi C++Builder Blogs digital particles](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/04/digital-particles-4558191-1489759.jpg?resize=1140%2C500&ssl=1)
- Используйте современные формы графического интерфейса
Современные компиляторы C ++ с IDE (Visual C ++, C ++ Builder, Objective-C, Android Studio и т. Д.) Используют графический интерфейс в зависимости от поведения операционной системы скомпилированного приложения. Консольные приложения хороши, но в некоторых случаях вам может потребоваться добавить больше функций. Элементы пользовательского интерфейса упрощают использование приложений и понимание вещей на стороне пользователя.
Кроме того, эти элементы пользовательского интерфейса, графика и изображения делают ваше приложение визуально потрясающим.
Visual C ++ имеет сторонние приложения, которые поддерживают скины / стили для элементов пользовательского интерфейса, таких как SkinFramework и SkinCrafter для предыдущих версий Visual C ++.
Структура оформления для Visual C ++ MFC предоставляет структуру пользовательского интерфейса для создания тем оформления, которая была разработана с учетом тем Windows (визуальных стилей). Тематические приложения можно создать с помощью всего нескольких строк кода.
![15 Tips tourfirst | Embarcadero RAD Studio Delphi C++Builder Blogs 15 tips tour first](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/04/15-Tips-tour_first-8029422.gif?resize=300%2C289&ssl=1)
SkinCrafter — еще один вариант для старых приложений Visual C ++ (2012 года или ранее). В SkinCrafter возможно создание скинов для большого количества языков программирования, инструментов и фреймворков. Судя по всему, он не поддерживает последние версии Visual C ++.
![222 | Embarcadero RAD Studio Delphi C++Builder Blogs 222](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/04/222-8707842.png?resize=300%2C119&ssl=1)
RAD Studio и C ++ Builder предлагают большое разнообразие стилей для приложений VCL и FMX. Они также позволяют пользователям изменять стиль приложения во время выполнения. Эти стили могут использоваться для многоплатформенных приложений и могут быть настроены с помощью встроенного конструктора стилей растровых изображений в РАД Студия. Вы также можете создать новый стиль с нуля. Самый простой способ начать работу с совершенно новым стилем — использовать шаблон стиля VCL в конструкторе стилей растровых изображений в качестве руководства. Стили VCL поддерживают механизм тем Windows, а стили FMX для кроссплатформенной инфраструктуры пользовательского интерфейса FireMonkey совместимы с другими операционными системами. В дополнение к скинам окон и элементов пользовательского интерфейса, стили также содержат множество современных значков. Большинство стилей VCL и FMX бесплатны, и новые бесплатные версии также можно загрузить с помощью GetIt или других веб-страниц в Интернете.
![333 | Embarcadero RAD Studio Delphi C++Builder Blogs 333](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2021/04/333-2438160.png?resize=300%2C191&ssl=1)
Table of Contents
Совет 6. Разрабатывайте приложения на основе графического интерфейса пользователя, чтобы создавать простые и понятные приложения с потрясающей графикой.
- Использовать свойства элемента пользовательского интерфейса в качестве вывода или использовать методы элемента пользовательского интерфейса
В C ++, вы часто писать в консоль через станд :: соиЬ, объект используется с потоками и поэтому поддерживает << оператор; направление стрелок показывает результат, а все, что находится справа от этого оператора, является выходом. Например:
1 2 3 4 5 6 7 |
include <iostream> int main() { std::cout << "This is in chars"; return 0 } |
В современном C ++ не используйте cout. В серверных приложениях или других приложениях ОС используйте std :: wcout, как в примере ниже. Как и строки, это потому, что это вывод широких символов, то есть Unicode.
1 2 3 4 5 6 7 |
include <iostream> int main() { std::wcout << L"This is in wide chars"; return 0 } |
В общем, все выполняется в строках Unicode или широких строках в современном C ++, а приложения пользовательского интерфейса никогда не используют std :: cout или std :: wcout. Поскольку современные приложения поддерживаются графическими интерфейсами, такими как кнопки, поля редактирования, текстовые поля, выпадающие поля со списком, меню и т. Д., А современные среды разработки C ++ (такие как C ++ Builder, Visual C ++) также поддерживают строки Unicode, мы используем свойства любые компоненты в качестве вывода вместо использования cout.
Например, мы можем вывести имя и возраст в текстовое свойство метки в C ++ Builder, как показано ниже.
1 2 3 4 5 |
String name = L"John"; int age = 25; Label1->Text = name; Label2->Text = IntToStr(age); |
Этот пример функции print () ниже в C ++ Builder выводит строку Unicode в строки компонента Memo.
1 2 3 4 5 |
void print(String txt) { Form1->Memo1->Lines->Add(txt); return 0; } |
Совет 7. Используйте свойства элемента пользовательского интерфейса в качестве вывода или методы элемента пользовательского интерфейса для вывода ваших данных.
8. Используйте свойства элемента пользовательского интерфейса в качестве ввода или используйте методы элемента пользовательского интерфейса. В консольном приложении объект std :: cin используется с оператором >> ; направление стрелок показывает ввод, а все, что находится справа от этого оператора, является выводом. Например:
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> int main() { std::string name; std::cout << "Name please:"; std::cin >> name; return 0; } |
Как мы описали ранее, необходимы строки Unicode или широкие строки. В современном C ++ не используйте std :: cin в серверных приложениях или других приложениях ОС; попробуйте использовать std :: wcin, как в примере ниже.
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> int main() { std::wstring name; std::wcout << L"Name please:"; std::wcin >> name; return 0; } |
Как описано выше, в визуальном программировании мы добавляем тексты, текстовые поля, кнопки, метки, выпадающие метки и т. Д. И называем их элементами пользовательского интерфейса, компонентами или визуальными инструментами.
В современном C ++ мы используем эти свойства элементов в качестве входных данных или используем их методы для получения входных данных. Например, мы можем получить ввод для имени и возраста из свойства text компонента редактирования (ввода текста) в C ++ Builder, как показано ниже.
1 2 |
String name = Edit1->Text; int age = StrToInt(Edit2->Text) |
Совет 8. Используйте свойства элемента пользовательского интерфейса в качестве входных данных или используйте методы элемента пользовательского интерфейса для получения входных данных.
- Используйте методы и возможности стандартных библиотек
Многие библиотеки в C ++ предоставляют функции для множества различных приложений, в то время как некоторые базовые библиотеки похожи на стандартные для всех приложений C ++: STL (стандартная библиотека шаблонов, часть всех дистрибутивов C ++), которая имеет разные реализации в зависимости от поставщика, например GNU Стандартная библиотека C ++ (libstdc ++), Стандартная библиотека Microsoft C ++ (STL) и Стандартная библиотека LLVM C ++ (libc ++).
STL определяет свои методы, типы и т. Д. В пространстве имен std ::. Вы можете прочитать о функциях, включенных в STL, здесь. Существует большое видео , которое показывает , что большинство из алгоритмов STL здесь .
Алгоритмы в этой библиотеке оптимизированы для более быстрой работы и совместимы со многими типами данных. Например, вместо написания метода сортировки для функции (например, пузырьковая сортировка, быстрая сортировка, сортировка слиянием и т. Д.) Вы можете использовать параллельные алгоритмы для выполнения многозадачных операций с использованием всех ядер ЦП. Некоторые другие примеры — это кучи, перестановка, числовые алгоритмы, запросы, поиск, заполнение, копирование, перемещение, удаление, уникальные операции в памяти и алгоритмы преобразования.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include #include #include int main() { std::vector vec{ 36, 11, 9, 5, 15, 45, 5, 3 , 98, 23, 65}; for (auto i: vec) std::cout << i << ','; std::cout << 'n'; std::sort(std::execution::par, vec.begin(), vec.end()); for (auto i: vec) std::cout << i << ','; std::cout << 'n'; getchar(); return 0; } |
Boost Library — еще одна отличная библиотека для использования большего количества алгоритмов. Boost предоставляет бесплатные и хорошо проверенные переносимые исходные библиотеки C ++, которые хорошо работают со стандартной библиотекой C ++. Библиотеки Boost предназначены для широкого использования и использования в широком спектре приложений. Лицензия Boost поощряет как коммерческое, так и некоммерческое использование.
Совет 9. По возможности используйте оптимизированные методы и функции стандартных библиотек.
Прочтите часть 1 этого сообщения в блоге здесь
Прочтите часть 3 этого сообщения в блоге здесь
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition