問題タブ [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.
c++builder - BPL のリソースから VCLSTYLE をロードする
Embarcadero C++Builder XE7 を使用。
いくつかのスタイルをリソースに配置しました。スタイルは、[プロジェクト -> リソースとイメージ] ダイアログを使用して追加されています。結果の.rcファイルは次のようになります。
ビルド中に、リソースがビルドされてリンクされていることがわかります。
を使用して、このライブラリにリンクしているメインアプリケーションからこれにアクセスしたいと思いますTStyleManager::Styles。RC を直接インクルードするか、BPL に入れて で読み込むかに関係LoadPackage()なく、上記のリストではなく、Windows スタイルのみが返されます。メイン アプリケーションにこれらのリソースをロードさせるにはどうすればよいですか?
transactions - FireDAC ApplyUpdates とトランザクション制御
DBExpress で記述されたアプリケーションを新しい FireDAC コンポーネントを使用するように変換しています。クエリを開く、フィルターや順序を変更する、グリッドに表示するなどの基本的な操作は正しく機能しています。しかし、一部の関数が dbexpress と比較して動作が異なることに驚いており、理解できないようです。
私のアプリケーションにはデータベース エディタが含まれています。ユーザーがエディタを開くと、 method を呼び出すことによって新しいトランザクションが開始されTFDConnection::StartTransactionます。ユーザーが [OK] ボタンをクリックすると、アクティブなトランザクションがコミットされ、エディターが閉じます。
エディターでは、2 つのクエリを使用してレコードを編集します。最初のクエリでは、手動で SQL 更新コマンド (" update TEST set NAME='some name' where ID=1234" など) を作成して実行します。ここまでは順調ですね。
2 番目のクエリは( TMS Software 社からTDBAdvGridの同等の) に接続され、持っています。そのグリッドの一部のレコードを変更すると、 andを呼び出します。TDBGridCachedUpdates = trueTFDQuery::PostTFDQuery::ApplyUpdates
奇妙な呼び出しTFDQuery::ApplyUpdatesは、この特定のクエリで保留中の変更をコミットするだけでなく、 のインスタンスに接続されているすべてのクエリをコミットしますTFDConnection。ApplyUpdatesの呼び出しはSQL 更新呼び出しを発行する必要がありますが、トランザクション制御に干渉するべきではないと考えました。
データベース エディター ウィンドウでユーザーが行ったすべての変更を拒否するオプションをユーザーに提供したいと考えています。正しく行う方法は?ApplyUpdatesウィンドウを閉じるときに呼び出しを延期する必要がありますか? では、 の目的は何ですか? またTFDQuery::CommitUpdates、TFDConnection::Commit必要なのは の呼び出しだけである場合はTFDQuery::ApplyUpdates?
master-detail - FireDAC マスター - 詳細関係が機能しない
データベース テーブルの最初の定義:
そして今、dfm ファイルでのデータ ソースとクエリの定義:
両方のデータ ソースが db グリッドに接続されています。
FormShow イベントでは、次のメソッドを呼び出します。
マスター グリッドにはテーブル UNCERTAINTY に格納されているすべてのアイテムが正しく表示されますが、詳細グリッドは常に空です。なんで ?
drag - ドラッグ アンド ドック操作中のウィンドウの z オーダーの変更
Form1、Form2、および Form3 (メイン フォーム) という名前のアプリケーションに 3 つのウィンドウがあります。Form2 は Form1 にドッキングできます。対応するプロパティは次のように設定されます。
Form1->DockSite = true;
Form2->DragKind = dkDock; Form2->DragMode = dmAutomatic;
Form3->DockSite = false;
スクリーンショット 1 には、ドラッグ アンド ドック操作を開始する前のウィンドウの状態が表示されます。ドラッグ アンド ドック操作を開始した後のウィンドウの状態は、スクリーンショット 2 に表示されます。ご覧のとおり、ドラッグ操作を開始した直後に、Form3 がフォアグラウンドに移動します。. Form2 を Form1 のドッキング可能領域に移動すると、ドッキング場所を示す灰色の長方形が画面に表示されます (このドッキング場所がメイン フォームの下に隠れている場合でも)。マウスの左ボタンを放した後、Form2 は Form1 に正しくドッキングされ、メイン フォームは再びバックグラウンドになります。ドラッグ プロセス中にメイン ウィンドウ (Form3) が Form1 の上に移動するのを禁止するにはどうすればよいですか? これは、メイン フォームの上にある TAdvDockPanel に関連している疑いがあります。実際には、Form2 をメイン フォームのどこにでもドッキングできないので、何もすることがないときに VCL がメイン ウィンドウをフォアグラウンドに移動する理由がわかりません。
c++ - `__fastcall` 呼び出し規則をいつ使用するか
C++ で記述された VCL ベースのアプリケーションが多数あります。すべての VCL メソッド (__publishedクラス修飾子の下) には、__fastcall呼び出し規約が必要です。ただし、何らかの理由で、開発者__fastcallはprivate、protected、またはpublic.
この記事に基づいて、これはコードを不必要に複雑にし、パフォーマンスに影響を与える可能性があるため、私には意味がありません (おそらく無視できる程度です)。それにもかかわらず、いくつかの場所でそれを削除することを提案した後、常にそのように行ってきたので、一貫性を保つように言われました。これは単なるスタイルの問題です. 必要がない場合、実際には人々を混乱させると思うので、悪い習慣です。
私の質問は、いつ__fastcall呼び出し規約を使用するのが適切ですか?
c++builder - 今日、TPrinter (XE7) で突然問題が発生するのはなぜですか?
C++ Builder XE7 VCL を使用しています。
2016 年 8 月 11 日午後 2 時 (UTC) 頃、印刷の問題についてユーザー ベースから複数の苦情を受け始めました。これらの印刷モジュールのほとんどは、何年にもわたって安定していることが証明されており、過去 24 時間以内に私のプロジェクトに更新はありませんでした。開発/テスト環境で同様の問題を再現できました。
私のプロジェクトの多くの詳細には触れずに、失敗している非常に単純な印刷プログラムを提示させてください:
最初に印刷しようとすると、すべてが期待どおりに完全に機能します。ボタンをもう一度クリックTPrinterすると、小さな PDF が生成されますが、実際には PDF ファイルが破損しており、ファイル ハンドルが貼り付いているように見えます。
ボタンを 3 回クリックすると、印刷されず、次のエラー メッセージが表示されます。
私自身のテストは PDF プリンター ドライバーを使用して行われましたが、ユーザーから受け取った苦情には、さまざまなローカル プリンター、ネットワーク プリンター、PDF プリンターなどがあります。
私の実際のプロジェクトでは、try/catch例外処理を行っているため、実際の結果はわずかに異なりますが、この結果とほぼ同じです。結果は、不安定性やメモリ リークの特徴を示していますが、エラー メッセージはほとんどありません。
Embarcadero DLL と絡み合っている Microsoft Windows の更新がいくつかあったのではないかと思いますが、これまでのところ確認できていません。
他の誰かが同様の問題を抱えていますか?



