問題タブ [delphi]
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.
delphi - Win32 Delphi アプリケーションを開発するのに最適なツール セットは何ですか?
Win32 Delphi アプリケーションを開発するのに最適な開発ツールのセットは何ですか? 自動ビルド サーバーやモデリング ソフトウェアなどのサポート ツールを含めます。Delphi 開発に最適なツールのリストを入手するのは興味深いことです。そのため、ツールの簡単な説明、使用する理由、他の選択肢よりもツールを選択した理由、および開発プロセスに与えた影響について説明してください。投稿ごとに 1 つのツールを使用してください。より人気があり、できればより便利なツールが一番上に表示されます。時間ができたら、ここで使用するツールについての私の意見で、以下の回答を更新します。
delphi - NevronaRaveの無限の印刷ループのバグを修正する方法
NevronaDesignsのRaveReports は、 Embarcaderoの DelphiIDEで使用するためのレポートエンジンです。
これは私がRaveEndlessLoopバグと呼んでいるものです。Delphi2006にバンドルされているRaveReportsバージョン6.5.0(VCL10)には、多くのRaveレポート開発者を悩ませている悪意のあるバグがあります。空でないデータセットがあり、このデータセットのデータ行がページに正確に収まる場合(つまり、未亡人の行がゼロの場合)、PrintPreview時に、Raveはページを生成する無限ループでスタックします。
この問題は、このニュースグループの次の見出しで以前に報告されています。
- "エラー:無限ページの生成"; ヒューゴヒラム2006年9月20日20:44
- "レイブループのバグ。助けてください"; トーマス・ラザール2006年11月7日19:35
- "データの全ページをループしますか?"; TonyChistiansen2004年12月23日15:41
- 別の申立人による(3)への返信。オリバーピシェ
- "エンドレスロッププリントバグ"; Richso2004年9月11日16:44
これらの投稿のそれぞれで、Nevronaからの応答はなく、解決策は報告されていません。
おそらく、この問題は関連ニュースグループ(nevrona.public.rave.reports.general)でも報告されており、次のようになっています。Jobard 20/11/2005(6)がRave Endlessループのバグなのか、それとも別の問題なのかはわかりませんが。この投稿はNevronaから返信がありましたが、未亡人がいないという問題よりも、複数の地域(「ページ分割を超える複数の地域を使用すると問題が発生します」)に関連していました。
delphi - サードパーティのCOMオブジェクトと相互作用してインスタンス化するコードをどのように単体テストしますか?
現在、ユニットテストに全力で取り組むことを妨げている最大の問題の1つは、私が作成するコードの非常に大きな割合が、相互作用する傾向のあるさまざまなソースからのサードパーティのCOMオブジェクトに大きく依存していることです(I ' m必要に応じて、いくつかのヘルパーライブラリを使用してMicrosoft Office用のアドインを作成します)。
私はおそらくモックオブジェクトを使用する必要があることを知っていますが、この場合、どのように正確にそれを実行しますか?既存のオブジェクトへの参照を渡す必要がある場合は比較的簡単ですが、一部のルーチンは外部COMオブジェクト自体をインスタンス化し、場合によっては別のライブラリから他の外部COMオブジェクトに渡すことがあります。
ここでのベストプラクティスのアプローチは何ですか?テストコードがレジストリ内のCOM登録情報を一時的に変更して、テストされたコードが代わりにモックオブジェクトの1つをインスタンス化するようにする必要がありますか?変更されたタイプのライブラリユニットを注入する必要がありますか?他にどのようなアプローチがありますか?
Delphiの例やツールには特に感謝しますが、より一般的なアドバイスやより高レベルの説明にも同様に満足します。
ありがとう、
オリバー
delphi - Delphi で「with」を使用してはいけないのはなぜですか?
多くのプログラマー、特に Delphi プログラマーは「with」の使用を軽蔑していると聞きました。
プログラムの実行が速くなり (親オブジェクトへの参照が 1 つだけ)、賢明に使用すればコードが読みやすくなると思いました (コードは 12 行未満で、ネストはありません)。
次に例を示します。
を使うのが好きwith
です。私がどうかしましたか、まずいことでもありましたか?
delphi - Delphi のクラス/静的定数
Delphi では、クラスに関連付けられたプライベート オブジェクトを作成し、そのクラスのすべてのインスタンスからアクセスできるようにしたいと考えています。Javaでは、次を使用します。
または、MySharedObject でより複雑な初期化が必要な場合は、Java で静的初期化ブロックでインスタンス化して初期化できます。
(ご想像のとおりです... Java は知っていますが、Delphi は初めてです...)
とにかく、MyObject のインスタンスを作成するたびに新しい MySharedObject をインスタンス化したくはありませんが、MyObject の各インスタンスから MySharedObject にアクセスできるようにしたいと考えています。(これを理解しようと思ったのは、実際にはログです。私は Log4D を使用しており、ログ機能を持つ各クラスのクラス変数として TLogLogger を保存したいと考えています。)
Delphi でこのようなことを行う最も適切な方法は何ですか?
delphi - Delphi 関数がスローする可能性のある例外を確認するにはどうすればよいですか?
Delphiでプロシージャ/関数がどの例外を発生させることができるかを調べる良い方法はありますか(プロシージャ/関数と呼ばれるものを含む)?
Java では、スローできる例外を常に宣言する必要がありますが、Delphi ではそうではなく、未処理の例外が発生する可能性があります。
未処理の例外を検出するコード分析ツールはありますか?
delphi - Delphi に *SysUtils.Format* の逆関数はありますか
Delphi 用の「UnFormat」ルーチンを作成した人はいますか?
私が想像しているのはSysUtils.Formatの逆で、次のようになります
UnFormat('a number %n and another %n',[float1, float2]);
したがって、フォーマット文字列を使用して文字列を一連の変数にアンパックできます。
SysUtils の「Format」ルーチンを見てきましたが、アセンブリを使用したことがないので意味がありません。
delphi - QtまたはDelphi...どちらかを選択する場合はどうなりますか?
Delphiの土地とQtの土地のどちらに冒険するかという違いがある場合、どちらを選びますか?私はそれらが完全に比較可能ではないことを知っています。私は、Builder C ++(ほぼDelphi)とMFC(ほぼQt)でWindows開発の経験があり、BuilderC++での作業にもう少し時間がかかります。分析では、Qtのクロスプラットフォーム機能を取り出してください。
両方で働いた人の返事と、フレームワークや環境などをどのように比較するのかを期待しています。
よろしくお願いします。
delphi - どのログ ライブラリが優れていますか?
私は考えていた; Delphi のどのロギング ライブラリが好みですか?
複数の製品を使用したことがある場合は、その製品を好む理由を追加してみてください。
読みやすくするために、この質問に提案を追加します。
delphi - Delphi コンポーネントのシリアル化
特にコンポーネント ベンダーが VCL コンポーネントをアップグレードする領域で、コンポーネントをファイルにシリアライズして読み戻す際に問題が発生した人はいますか。たとえば、ファイルは DelphiX でシリアル化され、数年後に delphiY で読み戻されます。シリアライゼーション形式は変更されますか? 変更された場合、アップグレード時にコンポーネントの読み取りエラーを防ぐために何ができますか?