Поиск сообщества
Показаны результаты для тегов 'c++'.
Найдено: 14 результатов
-
Здравствуйте! Есть следующая проблема с компонентом PrintDialog в приложении FireMonkey FMX в C++Builder 10.4. При попытке ввода количества копий в окне PrintDialog свойство PrintDialog->Copies не меняется. То есть, я пытаюсь записать значение свойства PrintDialog->Copies в переменную. В результате я всегда получаю начальное значение свойства, которое было задано в режиме DesignTime. Например, значение свойства Copies равно 10 (в DesignTime). Я ввел 4 в поле "Копии" окна PrintDialog в режиме RunTime. Мой код: int cnt = 0; if (! PrintDialog1- > Execute ()) return; cnt = PrintDialog1- > Копии; ShowMessage (IntToStr (cnt)); Сообщение всегда показывает мне значение 10. Всегда. IDE: Embarcadero C++ Builder 10.4. ОС: Windows 7 x64. Интересно, что тот же код на Delphi работает как надо! Странно, что не получилось найти в сети описания похожей ситуации. Пожалуйста, помогите мне решить эту проблему?...
-
- c++builder
- printdialog
-
(и ещё 2 )
C тегом:
-
В визуал студии в Xamarin есть такой класс -Java.Security.KeyStore Class, этот класс(как я понял) отвечает за подключение к хранилищу ключей андроида,короче говоря Android keystore system . А вот как достучаться до этой функции в с++builder ?Я хочу сделать привязку приложения через Android keystore system ,а как это сделать в Rad студии не знаю
-
Очень не хватает примеров на C++. Решил поделится опытом. Рассмотрим создание собственного "ListBoxItem"а на C++. И так начнем. Для начало создадим стиль для нашего "ListItem"а. В моем случае оно выглядит так: Структура выглядеть следующим образом: А вы сразу можете создать собственный стиль. Создадим класс для нашего "Item"а. Я назвал его TMyListBoxItem. Нужно знать следующие вещи: ApplyStyle() вызывается когда стиль загружен. FreeStyle() когда стиль выгружен. GetDefaultStyleLookupName() когда стиль не задано берется названые стиля по умолчанию. FindStyleResource("стиль") ищет в стиле ресурс с заданным названием. ListBox автоматически очищает из невидимых "Item"ов стиль что бы избежать от расходы на память. И заново загружает когда оно видимо. При этом вызывается соответствующие функции приведенные выше я приведу только некоторые кусочки кода. Остальное всё можете посмотреть в прикреплённых файлах. class TMyListBoxItem : public TListBoxItem { private: // Переменные для хранения данных System::UnicodeString FTimeTo; System::UnicodeString FTimeFrom; //.... // Визуальные компоненты TText* FTextTimeTo; TText* FTextTimeFrom; //... // Функции для присваивания данных, это нужно при написании "properties" void __fastcall SetTimeTo(const System::UnicodeString Value); void __fastcall SetTimeFrom(const System::UnicodeString Value); protected: void __fastcall ApplyStyle(); void __fastcall FreeStyle(); System::UnicodeString __fastcall GetDefaultStyleLookupName(); virtual void UpdateStyleData(); __published: __property System::UnicodeString TimeTo = {read=FTimeTo, write=SetTimeTo}; __property System::UnicodeString TimeFrom = {read=FTimeFrom, write=SetTimeFrom}; public: __fastcall TMyListBoxItem(System::Classes::TComponent* AOwner); }; Теперь напишем сами функции. void __fastcall TMyListBoxItem::ApplyStyle() { // Вызов метода предка TListBoxItem::ApplyStyle(); TFmxObject *StyleObject; // Поиск ресурса из стиля. Посмотрите в скрине, там есть ресурс с названием "timeto" типа TText StyleObject = FindStyleResource("timeto"); // dynamic_cast нужен для корректного преобразования типов. Если тип найденного ресурса не является TText то указателю будет присвоен NULL FTextTimeTo = dynamic_cast<TText*>(StyleObject); StyleObject = FindStyleResource("timefrom"); FTextTimeFrom = dynamic_cast<TText*>(StyleObject); UpdateStyleData(); } void __fastcall TMyListBoxItem::FreeStyle() { // Стиль выгружен из памяти. Нужно очистить указатели что бы избежать ошибок FTextTimeTo = NULL; FTextTimeFrom = NULL; TListBoxItem::FreeStyle(); } System::UnicodeString __fastcall TMyListBoxItem::GetDefaultStyleLookupName() { // название стиля для нашего "Item"а по умолчанию return "mylistboxitemstyle"; } void TMyListBoxItem::UpdateStyleData() { if(FTextTimeTo) FTextTimeTo->Text = FTimeTo; if(FTextTimeFrom) FTextTimeFrom->Text = FTimeFrom; } void __fastcall TMyListBoxItem::SetTimeTo(const System::UnicodeString Value) { FTimeTo = Value; if(FTextTimeTo) FTextTimeTo->Text = FTimeTo; } Вот и всё. Остается только добавит в наш проект ListBox и button для проверки. Вот функция создания нашего "Item"а: void __fastcall TForm1::Button1Click(TObject *Sender) { TMyListBoxItem *Item = new TMyListBoxItem(this); Item->Parent = ListBox1; Item->StyleLookup = "customstyle1"; Item->TimeFrom = "11:20"; Item->TimeTo = "12:50"; } Скриншот программы: В архиве мой класс и стиль. Для корректного отображения некоторых символов нужен fontcustom Какие вопросы задавайте. Отдельное спасибо Ярославу за мануал на дельфи: http://blogs.embarcadero.com/yaroslavbrovin/2012/10/15/listboxitem_styling_part2/ Администраторы и модераторы, прошу подкорректировать если что то неправильно. ListBoxItem.zip
-
Как уловить статус клавиатуры (активная или нет) C++
Макс Войтенко опубликовал вопрос в Виртуальная клавиатура
var Keyboard: IFMXVirtualKeyboardService; begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then ShowMessage( 'клавиатура открыта' ) else ShowMessage( 'клавиатура скрыта' ); end; ТАК Я на шел для делфи. Но мне нужно для C++ -
Здравствуйте, Ярослав! Скажите, пожалуйста, есть ли какая либо информация о планах поддержки Linux в C++ Builder? Нашей компании очень подходит RAD Studio для наших целей и быстрой разработки. Планируем приобрести лицензию. В ближайшее время планируем разрабатывать наше решение для Windows, macOS и Android, пока этого достаточно. Но есть некоторые сомнения о выборе RAD Studio и всё из-за того, что примерно через год потребуется наше решение реализовать и для Linux. Какова вероятность, что C++ Builder обзаведётся поддержкой Linux'а в течении 1 - 1,5 года? Delphi не рассматриваем. Заранее спасибо за ответ.
- 3 ответа
-
- c++
- c++ builder
-
(и ещё 1 )
C тегом:
-
Здравствуйте! Очень нужна помощь с TIdTCPServer или возможно моя задача решается каким-то другим компонентом или библиотекой. В общем, мне нужно получить с сокета не только данные, но и весь пакет целиком, т.е. со всеми TCP и IP заголовками. Возможно ли сделать это через TIdTCPServer? Конечно можно на C++ самостоятельно реализовать TCP/IP стек, но не хотелось бы терять на это время и "изобретать велосипед" в очередной раз. А конкретнее мне нужно получить весь TCP/IP пакет с заголовками и данными, запаковать его ещё в PPP и отправить на COM порт, чтобы добиться некого аналога виндового стандартного телефонного модема (Dial In). Буду благодарен за какую-либо помощь!
-
Всем привет! Кто-нибудь может подсказать как можно удалить ссылку в проекте на неиспользуемую статичную либу, чтобы она не линковалась к исполняемому файлу? Обыскал всё в настройках проекта, так и не смог найти. Дело в том, что я как-то в FMX проекте использовал невизуальный VCL компонент, добавленный через дизайнер форм. Потом я его удалил, но линковщик всё равно линкует в exe-шник библиотеки типа vcl.lib, vclx.lib, что абсолютно напрасно увеличивает размер исполняемого файла.
-
Здравствуйте! Может кто-нибудь уже проходил через подобное и знает как это реализовать и подскажет. Мне нужно программно создать виртуальный модем и входящее подключение через него. Ну или хотя бы через командную строку. Пробовал через RAS API, но получается не то, что мне нужно. Вот визуализация того, что мне нужно проделать:
-
Всем доброго времени суток, столкнулся с такой проблемой, на определенной форме включается медиаплеер и начинает проигрывать определенный трек, но при блокировке трек продолжает играть. Как обработать событие блокировки экрана и по нему отключать медиаплеер? Пишу на c++ builder. Пробовал делать через EnteredBackground, руководствовался заметкой по написанию подобного на Delphi xe http://delphifmandroid.blogspot.com/2013/10/blog-post.html Возможно есть другие варианты решения?
- 2 ответа
-
- MediaPlayer
- firemonkey
- (и ещё 6 )
-
Всем доброе время суток. Делаю "универсальный" компонент для обоих библиотек на C++ Builder. Наследник от TComponent. Функционал компонента НЕ зависит от визуальной библиотеки и весь код прописывается в одном файле. Попробовал создать 2-а пакаджа. В каждом из них создал пустой компонент, каждый под свою платформу. Имя у компонентов одинаковое. 1-ый пакадж установился, 2-ой нет. Студия сказала, что компонент с таким именем содержится в 1-ом пакадже. Вопрос: как правильно создать пакаджи, чтоб компонент был доступен и для VCL-форм и для FMX-форм и имел одинаковое имя? Например UniDac компоненты видны для обоих библиотек и имеют одинаковые имена и для VCL и для FMX.
-
Делаю кросс-платформенное прилоежние - на Android работает, на Windows: not such table Как сделать так, чтобы на других ПК работало приложение с БД?
- 3 ответа
-
- бд
- c++ buileder
-
(и ещё 1 )
C тегом:
-
Возможно ли использовать лямбда-выражения в C++ Builder XE7? Если да, то как?
-
Есть класс: class TMyObjectInt : public TObject { private: int Value; public: __fastcall TMyObjectInt (int _Value); __fastcall ~TMyObjectInt(); }; Есть ComboBox: for (int i = 1; i <= 10; i++) cbxItems->Items->AddObject(IntToStr(i), new TMyObjectInt(i)); Почему при вызове ->Clear() не вызываются деструкторы для TObject'ов? Казалось бы базовый TObject замечательно для этого подходит, даже деструктор у него виртуальным объявлен. Я могу написать свою функцию очистки, но это потенциально приводит к ошибкам, особенно если я отдаю указатель на ComboBox за пределы своей формы. Кстати, так же ведут себя и многие другие контролы, да и в VCL было так же.