問題タブ [delphi-xe]
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 - Delphi2007で複数のCオブジェクトファイルをリンク中にエラーが発生しました
私はデルファイに不慣れです。DelphiはCオブジェクトリンクをサポートしているため、DelphiプロジェクトにCオブジェクトファイルを追加して直接リンクしようとしていました。単一のオブジェクトファイルをリンクすると、機能するようになりました。しかし、複数のオブジェクトファイルをリンクしようとすると、「Unsatisfied forwardorexternaldeclaration」というエラーが発生します。XEだけでなくDelphi2007でもこれを試しましたが、ここで何が間違っているのでしょうか。
作業コード:
エラーコード:
delphi - Delphi XEの「VarToStr」?
古いプロジェクトを Delphi 5 から Delphi XE に移行しようとしています。プロジェクトをコンパイルしようとすると、次のエラーが発生します。
この行について:
それは Delphi 5 で正常に動作し、私が知る限り、VarToStr は XE でもサポートされています??
delphi - DelphiXE32ビット符号付き表現
32ビットの符号付き表現がDelphiXEで変更されたかどうかを誰かが知っていますか?
Delphi5で正常に機能する次のコードがあります。
ただし、Delphi XEを使用してコンパイルしようとすると、次のエラーメッセージが表示されます。
次のようないくつかの要素:
$ EE0E612C
$ 990951BA
$ E963A535
(およびその他、ただしすべてではありません)。
なぜそれが起こるのか誰かが知っていますか?
前もって感謝します!
delphi - Cardinalsでのforループが失敗する他のDelphiバージョンはどれですか?
回帰テストを手伝って、以下のコードがどのDelphiバージョンで失敗するかを判断してください。
編集: 私はそれのためのコンパイラのヒントがあることを知っています。実際、私が継承したプロジェクトで、コンパイラのヒントがオフになっていることがわかりました(コンパイラのヒントは常に無害であると考えているため、多くの人がそうしているようですが、この場合はそうではないことを示しています)。
それでも、このコンパイラの異常がドキュメント化の目的でどのDelphiバージョンに存在するかを知りたいです。
Delphi XE、2009、2007、および5では、以下の出力で失敗します。
他のDelphiバージョンを調査する時間がまだありませんでした。
それを手伝ってください、そしてそれが失敗する他のどのDelphiバージョンでも答えてください。
これは、 QC90921の一部でもあるコードです。
編集: 回答の要約; これらのDelphiバージョンでは失敗します。
- 5
- 6
- 7
- 2006年
- 2007年
- 2009年
- 2010年
- XE
--jeroen
delphi - Delphi RTTI を使用してレコード値を取得および設定する方法
Delphi XE 以降で強化された RTTI 機能を使用して、オブジェクトを XML に読み書きしようとしています。これまでのところ、整数、浮動小数点数、文字列、列挙型、セット、およびクラスで成功していますが、レコードを正しく出力または読み取ることはできません。問題は、レコード プロパティへのインスタンス (ポインター) を取得しているようです。
値を取得する方法がわかれば、値を設定することは問題にならないと思います。それから配列に、ああ、少年!
更新:以下を参照してください。(可視性を向上させるために別の回答として移行されました)。
delphi - DelphiXEのERangeError
ソフトウェアをDelphi5からDelphiXEに移行しています。私はすでに多くの違いを修正しました、そして今私は私のコードをコンパイルすることができます。
発生する問題は、(コードの一部の場所で)「範囲チェックエラー」というエラーが発生する場合があることです。
たとえば、このコードでは次のようになります。
Des [Counter-1]:='';の行を渡すと、実行時にエラーが発生します。エラーは、最初にループを通過したときではなく、何度も発生した後に発生します。
ランスチェック($ R)を無効にしようとしましたが、問題は解決しません。また、「Counter」のタイプをCardinalとLongWordに変更しようとしましたが、成功しませんでした。
何か役立つアイデアをいただければ幸いです。
ありがとう。
delphi - Fastreport へのオブジェクトの公開
FastReport(評価版)を主に請求書や見積書の印刷に使用しています。データ ソースとアプリケーション ロジックの分離を維持しようとしているので、Delphi オブジェクトを直接 FastReport に公開する簡単な方法はないかと考えています。現在、私はカスタム データ ソースに頼っていますが、これは多くの手動操作です。
基本的に、既にインスタンス化されている TInvoice オブジェクトを取得し、FastReport を使用して出力したいと考えています。
Delphi オブジェクトをデータ ソースとして FastReport (または別のレポート ツール) に公開する共通の祖先クラスまたはインターフェイスを実装した人はいますか?
編集: Delphi XE を使用しています。
delphi - DelphiではどのバージョンのIMallocを使用する必要がありますか?
DelphiXEでDelphi5プロジェクトをリファクタリングしようとしています。そのためには、BrowseDrというユニットのエラーを修正する必要があります。私が得ているエラーは
「MyShlObj」:
現在、FShellMallocの宣言で使用されているIMallocはOLE2.IMalloc
しばらくの間派生しており、「MyShlObj」で使用されているIMallocはから派生していActiveX.IMalloc
ます。
それらの1つを変更することは可能ですか?はいの場合、それはお勧めですか?
delphi - Sqlite WHERE 句と Delphi XE ロングワード値
Delphi XE では、文字列の crc32 ハッシュを SQlite データベースの INTEGER として宣言された列に保存しています。私の理解では、SQlite は整数型 (int、int64、signed、unsigned) を区別しません。データベースに関する限り、それらはすべて同じです。しかし、ロングワードとして宣言された値を Delphi に保存すると、後で WHERE 句がその値と一致しなくなります。
私の挿入ステートメント(ここでトリミング)は次のとおりです。
ロングワード値は 2 番目のパラメーターにバインドされ、すべてがうまくいきます。しかし、私がするとき
クエリは結果を返しません。
SQLiteSpyでデータベースを表示すると、ロングワード値が負の整数として表示されます。その表示からコピーして貼り付けた負の値で上記の SELECT を実行すると、クエリは期待されるレコードを返します。
ロングワード値を INSERT ステートメントにバインドすると、同じロングワード値を SELECT ステートメントにバインドすると、SQLIte は別のことを行うように見えます。値を整数にキャストすると(SQL ではなく Delphi コードで)問題が解決しますが、その必要はなく、他の場所でのキャストを忘れがちです。より良い解決策はありますか?SQLite は正しく動作していますか?
delphi - Tform2 の作成時にメッセージを表示しますか?
Tform2 が作成されたときにユーザーにメッセージを表示したい。このコードを使用していますが、うまく機能しません。