問題タブ [c++builder-6]
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.
serial-port - VaComm コンポーネントが OnRxChar イベントを発生させない
VaComm コンポーネントは、COM ポートを介した外部デバイスとの通信をカプセル化します。私のプログラムは、次のコードを使用して測定デバイスと通信しています:
次のような OnRxChar イベント ハンドラーを (フォーム デザイナーを介して) 設定しました。
問題は、データを受信してもこのイベントが発生しないことです (無限ループで TVaComm::ReadText メソッドを呼び出すことで確認できます)。また、接続されたデバイスへの 2 つのコマンドの送信に成功しました (デバイスのディスプレイで確認できます)。入力バッファにデータがある場合、COM ポートを開いて OnRxChar イベントを受信する以外に何が必要ですか? また、兄弟コンポーネント TVaBuffer の目的がわかりませんか? 現在、私はそれを使用しておらず、メソッド ReadText を介してデータを受け取ることができます (上記で書いたように)。
printf - Why is empty string transformed to "(null)"?
I have following code sample:
Pretty simple isn't it? String str is used as description for numeric values displayed in graph. For value say 0.05 V it is much more comprehensive and intuitive to say instead that "voltage is 50 mV". This is ensured through using proper prefix in this case "m". For values range <1; 1000) there is no need to add any prefix. We can for example say "voltage over this element is 50 volts" and this is perfectly understandable. I have problem that library function printf keeps adding string "(null)" when prefix is empty string for example:
"Voltage [(null)V]"
I haven't seen this type of behaviour anytime before when using Microsoft Visual Studio. Can this behaviour be somehow avoided?
c++builder - OnDrawColumnCellイベントで行番号を取得するには?
これは、TDBGrid コンポーネントの描画ルーチンがどのように見えるかです。いくつかのルールに基づいてデータベースの値を置き換えています:
ただし、現在レンダリングされている行を確認する方法がわかりません。この知識がなければ、表示するデータを取得できません。
c++builder - TDBGrid で編集オプションを無効にしても機能しない
実行時に TDBGrid コンポーネントを動的に作成する場合、ユーザーがセルの値を編集することを禁止できません。これは、私がこのタイプの動作を達成しようとしている方法です:
フォーム デザイナーでdgEditingを無効にすると、すべてが正しく機能します。これら2つのケースの違いを見つけることができません。DBGrid セルの編集を無効にするにはどうすればよいですか?
delphi - ページ コントロールとそのタブ シートの間の余白を削除するにはどうすればよいですか?
TPageControl の TTabSheet の Left プロパティが常に 4 であることに気付きました。このため、TPageControl の境界線と TTabSheet 内のコントロールの間には常に少なくとも 4 ピクセルのマージンがあります。この余白を 0 に設定したい (少なくとも左の境界線について) が、TTabSheet.Left を 0 に設定することはできません。常に自動的に 4 ピクセルに戻ります。
TTabSheet と TTabControl の OnResize で Left プロパティを設定しようとしましたが、役に立ちません。
このマージンを 0 に減らすにはどうすればよいですか (少なくとも左の境界線の場合)。C++ Builder 6 を使用しています。
boost - Borland C++ Builder でブースト
Borland C++ Builder で Boost ライブラリを使用した人はいますか? それをビルドして Borland C++ Builder で使用するためのオンライン リソースはありますか? ブーストのドキュメントは、特定のタスクについて非常に簡潔です。
どうもありがとう!
c++ - borland C++ builder 6 で .exe ファイルを作成する方法
自分のアプリケーションを独自のインストーラーを使用して別のコンピューターで実行するには、助けが必要です。どのファイルを含める必要があり、どのように作成するのですか?
c++ - JPEG #41 エラーの対処方法
C++ Builder6 のプロジェクトがあります。プロジェクトに画像をアップロードする OpenDialog があります。プロジェクトを安全にしたいのですが、.jpg または .bmp 画像しか受け付けないため、制限を設けることにしました。私に関する限り、ストリーム リーダーを 4 番目の位置に設定すると、.jpg ファイルを認識できます。ここに「JFIF」があれば.jpegファイルです。等々。これが私のコードです
しかし、残念ながら、拡張子の名前を変更したテキスト ファイルをここに置くと、そのコードは JPEG エラー #41 に関する例外を発生させます。
だから私の考えはうまくいきません。全体の問題は、try-catch メソッドを使用せずに、プログラムにエラー メッセージを返させることはできますか?
ちなみに、jpeg ファイルが空なので、例外が発生する理由がわかりました。しかし、標準の例外ではなく、独自のシステムを使用して処理したいと考えています。
c++ - コンストラクターでの謎のスタック オーバーフロー
これは、私のプログラムが使用するクラス階層です。
TForm_Upgrade_Database のコンストラクタは次のようになります。
__fastcall TForm_Upgrade_Database::TForm_Upgrade_Database(TComponent* Owner, int newest_version) : TForm(Owner) { }
Formular のインスタンスを作成しようとした後
私のプログラムは EStackOverflow 例外をスローします
プログラムを停止し、TForm_Upgrade_Database コンストラクターのブレークポイントで再度実行しました。いくつかのステップの後、コールスタックは次のようになります。
TCustomForm コンストラクターがその子孫のコンストラクターを呼び出そうとするのはどうしてですか?
最小限のテスト ケース:
so_project.cpp:
f_form.cpp:
f_form.h:
migration - C++ Builder XE がプロジェクトを BCB6 から正常に変換できない
古い BCB6 プロジェクトを C++ Builder XE プロジェクトに変換しようとしています。開発環境のバージョンは以下です。
Embarcadero C++ Builder XE バージョン 15.0.3953.35171
最初のステップは、空の新しいプロジェクトを作成することでした (ファイル -> 新規 -> VCL フォーム アプリケーション - C++ ビルダー)。その後、古いプロジェクトのすべてのファイルとすべてのフォームをプロジェクトに追加し、自動作成された空白のフォームを削除しました。2 番目のステップは、必要に応じてAnsiStringオブジェクトをUnicodeStringオブジェクトに変換することでした。次に、プロジェクトをビルドしようとしました。コンパイル フェーズはエラーなしで実行されました。しかし、私はリンカエラーで立ち往生しています(BCB6ではすべて問題ありませんでした):
これらのエラーを解決するにはどうすればよいですか? 私が間違ってやっていることがありますか?TChart は、BCB6 と C++ Builder XE の両方で標準コンポーネントです。