問題タブ [freepascal]
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 - Indy 10 の TIdHTTP
Delphi 6 時代には Indy を使用していましたが、現在は Indy 10 で遊んでいます。私がやりたいことは信じられないほど単純ですが、それを行う簡単な方法が見当たらないので、何かが欠けているに違いありません。
私がやりたいことは次のようなものです:
これが私が使用している実際のコードです:
リクエストが完了すると、http_result には指定された URL からの HTML が含まれているはずです。ただし、これは機能していないように見えるので、おそらくコンポーネントの IOHandler プロパティまたは OnWork イベントを使用する必要があると感じていますが、その使用法は私には明らかではないようで、機能する例が見つかりませんでしたグーグルで。これは以前に行われたことだと確信しているので、どんな助けもいただければ幸いです。
追加情報: より具体的に説明するために、次のことを知りたいと思います。2. もしそうなら、なぜそれが機能していないのでしょうか? 3. 私が使用している compiler/os/Indy の組み合わせにバグがある可能性は常にあります。(動作するはずですが)。
言及する必要がありますが、常に「接続が適切に閉じられました」というポップアップが表示されます。これは例外のようで、関数の結果に干渉している可能性があります。これを TRY...FINALLY でトラップしようとしましたが、うまくいきません。おそらく、Get メソッドの実行後に Indy がバックグラウンドで例外をトリガーしているためだと思います。
最後に、混乱を解消するために実行中のプログラムのスクリーンキャストを次に示し ます 。
delphi - Delphi から Lazarus に変換された GUI アプリの空のメイン フォーム
2 つの GUI アプリを Delphi から Lazarus に変換しました。どちらのアプリも、Win32 プラットフォーム、i386、および GUI でコンパイルされます。メイン フォームは Lazarus ツールを使用して変換され、IDE から編集できます。しかし、そのようなアプリケーションを実行すると、メインフォームは表示されず、コントロールのない空白のフォームのみが表示されます。
これをデバッグしようとしました。すべてのコードを初期化セクションで実行し、.lpr プロジェクトからコードを実行しますが、メイン フォームの OnCreate イベントでコードを実行しないため、CreateForm() で問題が発生します。'<App.Run'
イベント ログでは、この空のフォームを閉じた後に表示されるすべてのテキストを確認できます。
.lpr プロジェクトのコード:
Lazarus から単純な GUI アプリを作成できることを確認しましたが、変換された GUI アプリは両方とも期待どおりに動作しません。何が間違っている可能性がありますか?私は何かを逃しましたか?ラザロが書いた多くの警告やヒントの 1 つが重要なのではないでしょうか?
アプリを実行すると、Lazarus は次のように書いています。
編集:
Lazarus 変換ツールは .dfm -> .lfm を変換しましたが、.pas ファイルに問題があります。私は手動でしなければなりませんでした:
Lazarus ユニットを use に追加:
{$IFDEF FPC} を使用 LCLIntf、LResources、{$ENDIF}
条件付きコンパイル Delphi フォーム {$R *.dfm}:
{$IFNDEF FPC} {$R *.dfm} {$ENDIF}
初期化コードに .lrs リソースを追加します。
初期化 {$IFDEF FPC} {$i myunit.lrs} {$ENDIF}
pascal - $ apptypeはベストプラクティスのコメントですか?
私はFPCを使用して、Pascalに関する古い知識をさらに実践し始めましたが、Linuxの場合は、「プログラム」宣言の後にこのコメントが多く表示されるようになりました。
しかし、これはベストプラクティスのコメントですか、それとも一種の宣言ですか?
user-interface - FPCを使用したGUIのみ
Lazarus をインストールした FPC (Pascal) だけを使用して、Delphi 言語 (Object Pascsl) を使用せずに GUI アプリケーション (32 ビット) を開発する方法を知りたいです。ありがとう。
delphi - Synapse の Heartbeat 関数の使用方法の良い例はありますか?
Synapse for Delphi を使用していますが、もちろん HTTP ダウンロード中に GUI がフリーズします。ドキュメントを見ると、OnHeartbeat メソッドの使用が提案されています。
( http://www.ararat.cz/synapse/doku.php/public:howto:heartbeatを参照)
残念ながら、実際にはコード例が示されておらず、概念は単純ですが、使用法は明らかではありません。
これはソケット (オブジェクト) ごとの設定ですか、それともアプリケーション (クラス) ごとの設定ですか? また、コールバック プロシージャ自体がオブジェクトとして定義されているのも、少し変わっています。これを実際に使用したことがある人で、サンプル コードのスニピットを共有してくれる人はいますか?
flash - DelphiまたはFreePascalのAMFライブラリを誰かに教えてもらえますか?
通常の容疑者(Google Code、Source Forge、SO)で簡単な検索を行いましたが、AMFまたはFlash/Flexリモート処理のプロジェクトのヒントは見つかりませんでした。
この種のプロジェクトに出くわした人はいますか?
delphi - Free Pascal は Apache Maven のようなものの恩恵を受けることができますか?
Apache Mavenは、Java オープン ソース エコスフィアで非常に人気のあるビルドおよび依存関係管理ツールです。コンパイル済みのFree Pascal / Delphi ユニットを処理できるかどうかを確認するためにいくつかのテストを行ったところ、実装が簡単であることがわかりました。だからそれは可能だろう
- Free Pascal (または Delphi) 用にプリコンパイルされたオープン ソース ライブラリをパブリック Maven リポジトリでリリースする
- 依存関係情報を含むこのリポジトリにメタデータを含めます
- コマンド ラインで Maven を使用して、パブリック リポジトリからオープン ソース ライブラリをダウンロードし、すべての依存関係を自動的に解決します。
- プロキシとして機能するローカルリポジトリは、頻繁に使用されるバイナリをキャッシュするために使用できます
- チェックサムの自動生成と検証 (Maven が提供) により、破損したバイナリをダウンロードするリスクが軽減されます。
- ソース コードやドキュメント ファイルでさえ、バイナリと共に提供される可能性があります。
- バイナリは、デバッグ情報ありまたはなしで提供できます
- Hudson、TeamCity、CruiseControlなどの継続的インテグレーション サーバーを使用して、変更がソース管理システムに送信されるたびにプロジェクトをビルドし、ビルド エラーについて開発者に通知できます。
この依存関係管理の方法は、複雑な依存関係を持つ多くのサードパーティ ライブラリを使用するオープン ソース プロジェクトにとって非常に有益です。間違ったバージョンを使用することによって引き起こされる典型的な競合を回避できます。
開発者にとって、プロジェクトの編集と構築のワークフローは最小限に抑えられます。
- 内部バージョン管理システムからプロジェクト ソースをチェックアウトする
- ソースファイルを編集
mvn package
ワークステーションのローカル リポジトリにまだない場合は、必要なすべてのサード パーティ ライブラリ (プリコンパイル済みユニット) を自動的にダウンロードするために実行します。- コンパイルして実行
プロジェクト フォルダーに必要な Apache Maven の唯一の追加ファイルは、プロジェクト情報を含む POM.XML ファイルです。
編集: Maven は必要なタスクの一部に使用できますが、ネイティブ Free Pascal で Maven のようなソリューションを実装すると、いくつかの利点があります。Java SDK が不要、Free Pascal が利用可能なすべての開発プラットフォームのサポート、Pascal でのメンテナンスとプラグイン開発。
Maven のようなツールの使用は、オープン ソース プロジェクトだけでは役に立ちません。商用プロジェクトでも、パブリック Maven リポジトリにあるアーティファクトに同じ方法でアクセスして使用できます。
Maven 機能は、http://maven.apache.org/maven-features.htmlにリストされています。
アップデート:
ユースケースの 1 つは Lazarus のビルドで、Maven が必要なすべてのライブラリをダウンロードし、必要なビルド パス引数を指定してコンパイラを呼び出します。下位レベルの依存関係の変更は、親ビルドまで自動的に伝播されます。
考えられる利点:
- 新しいワークステーションのセットアップに必要な時間を短縮し、サードパーティ製ライブラリを手動でインストールする必要がありません
- 間違ったライブラリ バージョンによるエラーの減少、バージョンの競合の検出 (たとえば、2 つのライブラリが 3 番目のライブラリの異なるバージョンに依存している場合)
- 社内で作成されたアーティファクトは、ローカルの Maven リポジトリに追加して、開発者とプロジェクトの間で共有できます。メタデータを含むすべてのアーティファクトの中央ストレージ
- 同じソースとプロジェクト メタデータ ファイル (pom.xml) を使用するだけで、ビルドを再現できます。
- 開発時間を短縮し、プロジェクトの安定性を高めることができます
更新 #2: FPMake
Free Pascal 用のFPMakeビルド システムは、多くの可能性を秘めたツールのようです。多くの点で、Maven と非常によく似ています。
- FPMake は、FPC 用に開発され、FPC とともに配布される Pascal ベースのビルド システムです。
- FPMake は、標準ディレクトリのようないくつかの制限を定義することにより、建物を標準化します
- このコマンド
fppkg <packagename>
は、パッケージのデータベースを検索して抽出し、fpmake.pp をコンパイルして実行します。 - 標準のビルド ターゲット (クリーン、ビルド、インストールなど) があります。
- リポジトリへのインポートに適した「マニフェスト」ファイルを作成できます (
mvn deploy
または などmvn install
)。マニフェストは、Maven の pom.xml に非常によく似た XML ファイルです。
FPMake マニフェスト ファイル:
freepascal - fpmake.pp は何を使用し、現在も使用されていますか?
私はそれを一度使用しましたが、いくつかの適切な例/ドキュメントを入手するのが難しいことがわかったため、あまりうまくいきませんでしたが、環境を完成させるための良い方法でした.
それはまだ標準ですか、それとも放棄されたままですか?
初心者向けのハウツーと上級者向けのハウツーはどこにありますか?
ありがとう。
makefile - fpcmake と Makefile.fpc のトレーニングはどこで受けられますか?
私はこれらのどれも使用したことがありませんが、Free Pascal のメイン サイトにリストされているので、実際に使用したいと思います。
- 初心者向けガイド
- 私が成長するのを助けるための高度なガイド
これはすべて、まだ使用/標準の場合に備えています。
ありがとう
console - FreePascalでスタックトレースをキャッチする
Free Pascalで記述されたコンソールアプリケーションがありますが、ほとんどの大規模なアプリケーションと同様に、クラッシュすることがあります。このアプリケーションは稼働しているので、私は通常、クラッシュ時にスタックトレースを書き留めるように人々に依頼します。デバッグとlineinfoの両方で配布します。ただし、アプリケーションはFPC video.pas出力を使用し、テキスト出力のスタックトレースが表示されない場合があります。
未処理の例外に書き込まれたテキストをスタックトレースでインターセプトして、ファイルに書き込むことができるようにする方法はありますか?FPCビデオはどういうわけかそれで動作しないので、標準エラーをファイルにパイプすることはできません。また、バッチファイルやシェルファイルではなく、実行可能ファイルを実行するだけでよいのです。
例として、これをファイルまたは他の出力ソースにキャッチしたいと思います。
それをきれいに行う可能性はありますか?