問題タブ [c++builder-xe7]
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.
preprocessor - C++ ビルダー ファイルのバージョンが正しくありません
[プロジェクト] -> [オプション] -> [バージョン情報] でファイル バージョンを設定しました (はい、[バージョン情報を含める] にチェックが入っています)。
たとえば、すべてのリリース構成で FileVersion: 0.95.1.73 を設定しています。しかし、再構築すると、ファイルのバージョンは常に 0.7.8.28 に設定されます
FileVersion を何に設定しても問題ありません。常に 0.7.8.28 になります。著作権のテキストも非常に古いバージョンのものです。
プロジェクトの Win32/Release フォルダーにあるすべてのファイル obj、res、tds などを完全に削除しようとしました。でも毎回同じ結果。
プロジェクト ファイル (XML) の新しい FileVersion は 0.95.1.73 です。この問題はリリース構成でのみ発生し、デバッグ構成は正常に機能しています。
どこを見ればいいのか手がかりはありますか?これをオーバーライドできるコンパイラ/プリプロセッサ ディレクティブはありますか?
c++ - デフォルトで構築されたオブジェクトを関数に渡すときの「E2188 Expression syntax error」
誰かが上記のエラーを説明するのを手伝ってもらえますか? Embarcadero の XE7 を使用して発生します。同じコードは、Visual Studio を使用して正常にコンパイルされます。XE7 での問題は、示されているように、testメソッドの 2 行目でのみ発生し、他のすべてのケースでは正常にコンパイルされます。
編集 申し訳ありませんが、私の例に間違ったコンストラクターを貼り付けましたが、修正されました。括弧で囲まれた場合、ブール値パラメーターを持つコンストラクターはコンパイルされますが、パラメーターなしのコンストラクターはコンパイルされません。
c++ - Firemonkey コントロールの OnMouseMove メソッドの設定
OnMouseMoveFunction を定義しようとしているカスタム コントロールがあります。基本的に、コントロールは検索バーとして機能し、TGrid結果を表示するための子カスタム コントロールを含む編集ボックスで構成されます。既にいくつかのマウス イベントを処理してTGridいますが、OnMouseMove を実装しようとすると、TGridOnMouseMove メソッドを設定しようとすると次のエラーが発生します。
E2034 Cannot convert 'void (_fastcall * (_closure )(TMouseMoveEvent))(TMouseMoveEvent)' to 'TMouseMoveEvent'
関数が定義されているヘッダー ファイルの一部を次に示します。
void __fastcall GridMouseMove( TMouseMoveEvent * MouseEvent );
コントロールの CPP ファイル内の実際の関数は次のとおりです。
この時点まで、すべてが問題なくコンパイルされます。ただし、割り当てTGridたメソッドに の OnMouseMoveEvent ハンドラを割り当てようとすると、エラーが発生します。
これがビルドされない原因は何ですか?
c++ - コード内の TGrid 行の強調表示
私はそれを作ろうとしているカスタムTGridコントロールを持っているので、マウスが行の上に置かれると、その行が強調表示されます。矢印キーを使用してグリッドを移動すると、行が自動的に強調表示されます。ただし、マウスを使用したナビゲーションでこの効果を再現する方法がわかりません。
現在、マウスがホバーしているグリッドの行を検出できる MouseMove 関数があります。
私は当初、SelectRow関数を使用すると目的の効果が得られると考えていましたが、その方法を使用しても何も起こりません。さらに、私は使用してみました
FGrid->SelectCell(0, rowSelected);
どちらも機能しませんでした。
マウスを使用して行のテキストを太字に設定することにより、関数から正しい行を取得していることを確認しました
FGrid->RowObjects[rowSelected]->SetBold();
c++ - C++ で Firemonkey コントロール フォントをプログラムで設定する
TEditフォーム上で動的に作成される、拡張するカスタム Firemonkey コントロールがあります。次を使用して作成するときにフォントサイズを設定しようとしています:
ただし、コントロールのフォントは変更されません。
プログラムでフォントサイズを変更できるフォームに既にある同じタイプの別のコントロールがあります。このコントロールで気がついたのは、プロパティSizeで設定が false に設定されている場合はフォントを変更できるのに対して、設定が true に設定されている場合はフォント サイズを変更できないことです。 StyledSettingsSize
そのため、カスタム コントロールを作成するときに、プログラムでSizeプロパティを false に設定しようとしていますが、その方法がわかりません。
私が試してみました:
と
どちらもコンパイルさえしません。実行時にカスタム コントロールでこのプロパティが確実に削除されるようにするにはどうすればよいですか? または、フォントを設定する別の方法はありますか?
c++ - TZipFile を使用して新しい zip ファイルを作成する
TZipFile クラスを使用して新しい zip ファイルを作成し、いくつかのファイルを追加しようとしています。次のコードを使用して、既存の zip ファイルにファイルを追加できます。
ただし、コードで新しい zip ファイルを作成し、それにファイルを追加する方法がわかりません。zip->Openアーカイブが作成されるのではないかと考えて、存在しないファイルを 呼び出してみましたが、アクセス違反が発生しました。