問題タブ [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.

0 投票する
1 に答える
2271 参照

serial-port - VaComm コンポーネントが OnRxChar イベントを発生させない

VaComm コンポーネントは、COM ポートを介した外部デバイスとの通信をカプセル化します。私のプログラムは、次のコードを使用して測定デバイスと通信しています:

次のような OnRxChar イベント ハンドラーを (フォーム デザイナーを介して) 設定しました。

問題は、データを受信して​​もこのイベントが発生しないことです (無限ループで TVaComm::ReadText メソッドを呼び出すことで確認できます)。また、接続されたデバイスへの 2 つのコマンドの送信に成功しました (デバイスのディスプレイで確認できます)。入力バッファにデータがある場合、COM ポートを開いて OnRxChar イベントを受信する以外に何が必要ですか? また、兄弟コンポーネント TVaBuffer の目的がわかりませんか? 現在、私はそれを使用しておらず、メソッド ReadText を介してデータを受け取ることができます (上記で書いたように)。

0 投票する
4 に答える
3470 参照

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?

0 投票する
1 に答える
655 参照

c++builder - OnDrawColumnCellイベントで行番号を取得するには?

これは、TDBGrid コンポーネントの描画ルーチンがどのように見えるかです。いくつかのルールに基づいてデータベースの値を置き換えています:

ただし、現在レンダリングされている行を確認する方法がわかりません。この知識がなければ、表示するデータを取得できません。

0 投票する
3 に答える
2247 参照

c++builder - TDBGrid で編集オプションを無効にしても機能しない

実行時に TDBGrid コンポーネントを動的に作成する場合、ユーザーがセルの値を編集することを禁止できません。これは、私がこのタイプの動作を達成しようとしている方法です:

フォーム デザイナーでdgEditingを無効にすると、すべてが正しく機能します。これら2つのケースの違いを見つけることができません。DBGrid セルの編集を無効にするにはどうすればよいですか?

0 投票する
1 に答える
3359 参照

delphi - ページ コントロールとそのタブ シートの間の余白を削除するにはどうすればよいですか?

TPageControl の TTabSheet の Left プロパティが常に 4 であることに気付きました。このため、TPageControl の境界線と TTabSheet 内のコントロールの間には常に少なくとも 4 ピクセルのマージンがあります。この余白を 0 に設定したい (少なくとも左の境界線について) が、TTabSheet.Left を 0 に設定することはできません。常に自動的に 4 ピクセルに戻ります。

TTabSheet と TTabControl の OnResize で Left プロパティを設定しようとしましたが、役に立ちません。

このマージンを 0 に減らすにはどうすればよいですか (少なくとも左の境界線の場合)。C++ Builder 6 を使用しています。

0 投票する
2 に答える
1717 参照

boost - Borland C++ Builder でブースト

Borland C++ Builder で Boost ライブラリを使用した人はいますか? それをビルドして Borland C++ Builder で使用するためのオンライン リソースはありますか? ブーストのドキュメントは、特定のタスクについて非常に簡潔です。

どうもありがとう!

0 投票する
2 に答える
4579 参照

c++ - borland C++ builder 6 で .exe ファイルを作成する方法

自分のアプリケーションを独自のインストーラーを使用して別のコンピューターで実行するには、助けが必要です。どのファイルを含める必要があり、どのように作成するのですか?

0 投票する
0 に答える
774 参照

c++ - JPEG #41 エラーの対処方法

C++ Builder6 のプロジェクトがあります。プロジェクトに画像をアップロードする OpenDialog があります。プロジェクトを安全にしたいのですが、.jpg または .bmp 画像しか受け付けないため、制限を設けることにしました。私に関する限り、ストリーム リーダーを 4 番目の位置に設定すると、.jpg ファイルを認識できます。ここに「JFIF」があれば.jpegファイルです。等々。これが私のコードです

しかし、残念ながら、拡張子の名前を変更したテキスト ファイルをここに置くと、そのコードは JPEG エラー #41 に関する例外を発生させます。

ここに画像の説明を入力

だから私の考えはうまくいきません。全体の問題は、try-catch メソッドを使用せずに、プログラムにエラー メッセージを返させることはできますか?


ちなみに、jpeg ファイルが空なので、例外が発生する理由がわかりました。しかし、標準の例外ではなく、独自のシステムを使用して処理したいと考えています。

0 投票する
2 に答える
552 参照

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:

0 投票する
1 に答える
2760 参照

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 の両方で標準コンポーネントです。