問題タブ [fpc]
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.
design-patterns - 仮想静的フィールドによって解決できることの解決策を教えてください... FPCで
私は Freepascal でイベント マネージャーをやっています。
各イベントはオブジェクト タイプ TEvent (=オブジェクト) であり、各種類のイベントはこのクラスから派生する必要があります。
イベントは、動的に割り当てられる整数識別子によって区別されます。
問題は、インスタンスのイベント ID を取得したいのですが、うまくできないことです。
- クラス(オブジェクト)のすべてのインスタンスには一意のID =>があるため、静的フィールドにする必要があります。
- すべてのクラスには異なる id => があるため、仮想でなければなりません。
- イベントIDは実行時に割り当てられ、変更される可能性がある=>ため、単純な方法にはなりません
要するに、私はこれをすべてまとめることができません。
私はエレガントなソリューションを探しています。ハードコードされたテーブルを書きたくないので、すべてのコンストラクターでそれを実現します...など、ポリモーフィズムを利用したものを好む
誰かが別の技術的または設計的ソリューションで私を助けてくれますか? ?
オブジェクト構成の代わりにクラスを使用したくないことに注意してください。(プロパティはオブジェクトでは機能しませんか? :(
windows-ce - PageControl fpc/Lazaurs の割り当てでの EBusError
プログラム用に動的な TTabSheets を作成しようとしています。
FPC/Lazarus で作成され、ARM/WinCE 用にビルドされて
います。設計時に作成されたタブシートを含め、すべてが機能しますが、次のコード
行Tab.PageControl := PageControl1; 例外EBusError、バス エラー、または位置合わせされていないデータ アクセスが発生します。
私はこれを読みましたが、それがどのように適用されるかわかりません http://wiki.freepascal.org/Windows_CE_Development_Notes#Alignment_problems
コードは win32
FPC バージョン 2.2.4で正常に動作します。
resources - Lazarus や FPC に関する活発なブログ
「Emborcadero」が取っている全体的な方向性に本当に腹を立てており、FPC/Lazarus に本当に投資するつもりです。
Lazarus のドキュメントページに移動すると、次のブログが見つかりました。
- Lazarus 開発- 最新
- 初心者の冒険- FPC Wiki ページ
- Lazarus/Free Pascal を使った旅- 最新
- Lazarus への移植- 最終投稿 2009 年 12 月
- Living Lazarus - 最終投稿 2009 年 9 月
- Parallel Pascal Worlds - 最新
フォローするブログや Twitter アカウントに関して、より多くのリソースを提案してもらえますか?
delphi - メインスレッド (Lazarus) のコンテキストでコードを実行する
メインスレッドのコンテキストでコードを実行する必要があります。Lazarus + FPC を使用しています。DLL (Linux の場合は共有ライブラリ) 内のスレッドからイベントを受け取り、コールバック関数が呼び出されます。この関数はどのクラスのメンバーでもなく、「cdecl」ディレクティブが付加されたスタンドアロンの従来の関数であることに注意してください。
このようなメッセージを受信するたびに、対応するプロパティ イベント ハンドラーをトリガーする必要があります。これらのイベントは、メイン スレッドのコンテキストで渡す必要があります。私は2つのそのような解決策を知っています:
- 投稿メッセージ
- Application.QueueAsyncCall
最初のものは問題ありませんが、ウィンドウ ハンドルが必要です。これはライブラリ コードであるため、使用できるハンドルはありません。AllocateHWND はクロス プラットフォームではないため、オプションではありません。ダミーフォームを作成できることは知っていますが、これは非常に悪い解決策です
2番目は問題なく動作しますが、たとえばアプリケーション内でマウスを移動するまで呼び出しが処理されないという問題があります。たぶん、私は何か間違ったことをしているのかもしれません。メッセージ処理が開始されたときにのみ通話が処理されているようです。しかし、これは明らかに長い待ち時間になる可能性があります。
したがって、ここでの最善の解決策 (おそらく QueueAsyncCall) と、メッセージ (呼び出し) が許容時間内に処理されることを確認する方法を知りたいですか?
lazarus - LazarusApacheモジュールをApache1.3、2.0、および2.2に選択的にコンパイルするにはどうすればよいですか?
/etc/fpc.cfgを見てきましたが、いくつかの定義について言及されています。
- FPCAPACHE_1_3
- FPCAPACHE_2_0
次に、fcl-webの例では、次のことに言及しています。
- Apache1_3
私が見つけた唯一のものは、これら両方のファイルのapr.pasにあります。
- /usr/share/fpcsrc/2.4.0/packages/httpd20/src/apr/apr.pas
- /usr/share/fpcsrc/2.4.0/packages/httpd22/src/apr/apr.pas
では、コンパイラはどのバージョンのAPRをコンパイルするかをどのように決定するのでしょうか。
lazarus - Lazarus で WebLaz プロジェクトをコンパイルする際の問題
私の仕様:
- OS: Ubuntu 10.04 LTS amd64
- fpc: 2.4.0
- ラザロ: 0.9.28
WebLaz プロジェクトを作成してコンパイルするだけで、WebLaz プロジェクトをコンパイルしようとしています。どういうわけか、使用する httpd および fpapache ユニットを決定するときにコンパイラがすべて失われます。
フォーラムで同様の問題を見つけました。
そこに提供されているソリューションのいくつかを試した後、私はまだこの時点にいます:
コンパイル済みユニットとパッケージのソースの下に httpd22 しかない場合、プロジェクトは正常にコンパイルされます。残念ながら、それは完全にリンクに失敗します。
元の fpc/lazarus フォルダー構造 (場所、ユニット、ソースの両方で HTTPD13、HTTPD20、および HTTPD22 のすべてが変更されていない) では、コンパイラーは httpd のチェックサムが変更され、fpapache のソースを見つけることができないと不平を言います。
- httpd20 の下に httpd.pas が見つかりますが、2.2 のフォルダーでのみ機能します。
WebLaz コンポーネントを使用してこれをコンパイルする方法が完全にわかりません。何が欠けていますか?
apache2 - mod_helloworld.lpr のビルド
mod_helloworld.lpr、C:\lazarus\components\fpweb\demo\helloworld\apache の Apache サンプルをビルドしようとしています。
Lazarus 0.9.29
FPC バージョン 2.4.3 SVN 27129
i386-win32
$(LazarusDir)\fpc\2.4.3\source\packages\fcl-web\src\
他のユニット ファイル (-Fu) に追加するとコンパイルされますが、ビルド/リンクするとエラーが発生します。
lclか何かを追加しようとしていますが、本当にわかりません。
lazarus - Free Pascal .dll/.so で WSRegister* を回避する方法
最終的に「空の」Apache モジュールのコンパイルに成功しましたが、かなり厄介な障害にぶつかりました。
MongoDB サーバーと通信したいので、FreePascal/Lazarus 用の唯一のライブラリであるpebongoを選択しました。
pebongoの依存関係はシナプスです。
モジュールを Apache にロードすると、どういうわけか "/usr/lib/apache2/modules/mod_visius.so: undefined symbol: WSRegisterCustomImageList" が表示されます。
私は Menus.pp でシンボルを追跡したと思いますが、これには lazarusall (何か) も役割を果たしていると思います。繰り返しますが、私は思います:)
これらの WSRegister* シンボルが表示されないようにするにはどうすればよいですか?