問題タブ [c++builder-10.1-berlin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - TObject の子孫で std::vector::push_back を呼び出すときの C++ Builder bccarm エラー
C++ Builder 10.1 Berlin の Clang ベースの C++11 コンパイラ bccaarm ではコンパイルできない単純な C++ コードがいくつかあります。
これはコードです:
そして、これはエラーです:
[bccaarm エラー] stl_iterator.h(963): 型 'value_type' (別名 'System: classes::TComponent * __strong') への右辺値参照は、型 '__borland_class * isTObj __strong' (別名 'System: :Classes::TComponent * __strong')
コンパイラは、ファイル stl_iterator.h の 963 行目で停止します。
他の C++ コンパイラ bcc32 および bcc32c (これも Clang ベース) では、このコードに問題はありません。
Comp
タイプTComponent
またはコードからの別の子孫からではない場合TObject
、問題なくコンパイルされます。
このコードの何が問題なのか、なぜ R 値と L 値に問題があるのか わかりません...
ここで何をすべきか知っている人はいますか?
c++ - TStyledPresentationProxy の子孫がクラスに登録されていません
から継承するカスタム グリッド コントロールがありTGrid
ますTFmGrid
。このコントロールは、Rad Studio 10 Seattle Update One で正常に機能していました。TFmGrid
最近 10.1 Berlin にアップグレードしたところ、アプリケーションの実行時とデザイナーの両方で次のエラー メッセージがコントロールに表示されることに気付き始めました。
TStyledPresentationProxy の子孫がクラス TFmGrid に登録されていません。FMX.Grid.Style モジュールを uses セクションに追加する必要があるかもしれません。
以下の画像は、グリッド コントロールにエラー メッセージがどのように表示されるかを示しています。
メッセージが示すように、コントロール #include <FMX.Grid.Style.hpp>
のヘッダー ファイルに追加することから始めましたが、これは何もしていないようです。TFmGrid
したがって、 の子孫を登録しようとする限り、TStyledPresentationProxy
どこから始めればよいか正確にはわかりません。メソッドに関するこのドキュメントを見つけました:
指定された名前、または指定されたコントロール クラスとコントロール タイプの組み合わせで、プレゼンテーション プロキシ クラスの登録を試みます。
したがって、このメソッドまたは少なくとも同様のものを使用する必要があると思いますが、このメソッドを呼び出す方法がわかりません。
しかし、それでは、このコードをどこで呼び出すべきかという問題が生じます。
カスタム コントロールの名前空間Register()
には、コントロールの作成時に IDE によって自動生成されたと思われるメソッドがあります。
の子孫を登録するには、そこに何かを呼び出す必要がありTStyledPresentationProxy
ますか? これについての適切な方法は何ですか?
c++builder - スタイル付き VCL コンポーネントの作成
C++ Builder 10.1 Berlin でカスタム VCL コンポーネントを作成しようとしています。TGraphicControl
これは、TProgressBar
.
Windows テーマシステムを使用して自分自身を描画したい。これを行うために、ソース コードにインクルードし、メソッドを呼び出すVcl.Themes.hpp
仮想メソッドを上書きしました。Paint()
TCustomStyleServices::DrawElement
問題は、解決できない64 ビットリンカの不平です。Vcl::Themes::TCustomStyleServices::DrawElement
リンカーを満足させるにはどうすればよいですか?
c++ - boost::locale と Embarcadero Berlin 10.1 のリンク
Embarcadero Berlin 10.1 で簡単なコンソール アプリケーションを作成し、32 ビットの clang コンパイラを選択して、boost docs の hereからいくつかのコードをコピーしました。
ここに完全なコードがあります
しかし、いくつかのリンカー エラーが発生します。
libboost_locale-bcb32c-MT-SD-1_55.lib をプロジェクトに手動で追加することで修正できる最初の 2 つです。Boost に関する私の理解と経験から、実際には手動でリンクする必要はありませんが、気にしません。ただし、最後の4つはまったくわかりません。ロケール バックエンドに関連しているようです (Embarcadero が提供するブーストを備えた ICU ではありませんか?)
誰かアドバイスはありますか?