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

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

delphi - Lazarus アプリのスプラッシュ スクリーンの問題

Delphi アプリケーションを FPC/Lazarus に移植していますが、このアプリケーションはスプラッシュ スクリーンに情報を表示します。ユニットに初期化セクションがある場合、この初期化セクションは次のようなものを呼び出します。

これは Delphi で動作しますが、FPC/Lazarus を使用してこれをコンパイルすると、スプラッシュ スクリーンでフォームを作成すると例外が発生しました。

Application.Initialize;が呼び出された後にフォームを作成できることがわかったので、私の回避策は、 ScreenInfo.Initialized=true. 機能しますが、すべての情報が表示されるわけではありません。ユニット初期化セクションの前にスプラッシュ フォームを表示する方法はありますApplication.Initialize;か?

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

delphi - Lazarus/FPC での WM_COMMAND の問題

MainMenu のフォームがあり、ユーザーがメニューからコマンド項目を選択したときにインターセプトしたい。これは Delphi で機能します。

MainMenu にいくつかの項目を追加し、メニューからそれらの項目を選択すると、Memo1 が次のように入力されます。

このアプリケーションを FPC/Lazarus に移植しましたが、WM_COMMAND ハンドラが呼び出されていないようです! Delphi でブレークポイントを設定するとTForm1.WMCommand、メイン フォームが表示される前に Delphi が何度も停止しました。Lazarus は、このブレークポイントで停止することはありませんでした。Lazarus の WM_COMMAND で何かが壊れていると思いますが、何かわからないことがあります。何か案が?

WinXP で FPC 2.2.4 を搭載した Lazarus 0.9.28.2 ベータ版を使用しています。

編集:

Winspector を使用して、MainMenu が WM_COMMAND を生成することを確認しました。

Lazarus/FPC の WM_COMMAND メッセージ メソッドの処理にバグがあると思い、報告しました: http://bugs.freepascal.org/view.php?id=15521

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

delphi - メインプログラムではオブジェクトがクラッシュするが、ユニットに移動するとクラッシュしない

カスタム SDL GUI ツールキット (ソースはhttp://sourceforge.net/projects/lkgui/files/にあります) を作成しましたが、継承されたオブジェクトに問題があります。

オブジェクトがメイン プログラム内にある場合、コンストラクターが呼び出されないため、プログラムはオブジェクトを適切に初期化せず、いくつかのコマンドの後でクラッシュします (具体的には、TStartGameButton は GUI_Canvas から継承し、GUI_Element から継承し、GUI_Element で定義されていないものはすべてクラッシュします)。 EAccessViolation のあるプログラム)。オブジェクトがユニット内に配置されると、この問題はなくなります。

ユニットにそのままにしておくことができることは理解していますが、うまくいけば回避できるいくつかの醜いコードにつながるでしょう。

なぜこれが起こっているのか、どうすれば回避できるのか、誰にも分かりますか?

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

optimization - WPO (プログラム全体の最適化) でプログラムのサイズが改善されないのはなぜですか? (FPC2.4.0)

私はWinXPにFPC 2.4.0を使用しています(公式ページのバイナリ)。これも同じバージョンで試しましたが、コンプのソースからコンパイルしました。私はこのようなものを置きます:

I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-1.wpo -OWsymbolliveness -CX -XX -Xs- -al -Os -oServer1.o Server
I:\pascal\fpc-2.4.0.source\fpc-2.4.0\compiler\ppc386 -FWserver-2.wpo -OWsymbolliveness -Fwserver-1.wpo -Owsymbolliveness -CX -XX -Xs- -al -Os -oServer2.o Server
..(up to 100 times)

ただし、常に同じ .wpo ファイルと同じ .o サイズ (.s、アセンブリ ファイルは断続的に変更されます)

また、使用されていない変数がまだ生きていることも(コンパイラメッセージを通じて)わかりません。-OWall -owall も試してみました。何が間違っていますか?

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

design-patterns - 仮想静的フィールドによって解決できることの解決策を教えてください... FPCで

私は Freepascal でイベント マネージャーをやっています。
各イベントはオブジェクト タイプ TEvent (=オブジェクト) であり、各種類のイベントはこのクラスから派生する必要があります。
イベントは、動的に割り当てられる整数識別子によって区別されます。
問題は、インスタンスのイベント ID を取得したいのですが、うまくできないことです。

  • クラス(オブジェクト)のすべてのインスタンスには一意のID =>があるため、静的フィールドにする必要があります。
  • すべてのクラスには異なる id => があるため、仮想でなければなりません。
  • イベントIDは実行時に割り当てられ、変更される可能性がある=>ため、単純な方法にはなりません

要するに、私はこれをすべてまとめることができません。
私はエレガントなソリューションを探しています。ハードコードされたテーブルを書きたくないので、すべてのコンストラクターでそれを実現します...など、ポリモーフィズムを利用したものを好む
誰かが別の技術的または設計的ソリューションで私を助けてくれますか? ?
オブジェクト構成の代わりにクラスを使用したくないことに注意してください。(プロパティはオブジェクトでは機能しませんか? :(

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

delphi - DFM ファイルをソースコードに変換するツールはありますか?

アプリを FreePasal/Lazarus に移植していますが、フォーム コンバーターが良くないことがわかりました。小さなユーティリティ アプリを使用していますが、変更を行うたびに、グラフィックスを再変換、再レイアウト、および再インポートする必要があります。さらに、いくつかのことが台無しになっています。

DFM ファイルを Delphi ソースコードに変換するための自動ツールが存在するかどうか疑問に思うので、これをより簡単に行うことができます。ソースコードが FPC 互換でなくても問題ありません。

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

pascal - NZEC エラーが発生するのはなぜですか?

私は Pascal で作業しています。問題を送信するときに NZEC (Non Zero Exit Code) エラーが発生する理由がわかりません。私のPCでは完璧に動作します。ご意見をお聞かせください。

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

macos - Free Pascal で 64 ビット Mac プログラムをコンパイルするにはどうすればよいですか?

Mac に GCC でコンパイルされた x86_64 ライブラリがあり、Free Pascal 2.4 でコンパイルされた Pascal コードとリンクしたいと考えています。fpc64 ビット コードを生成するには、どのようなオプションを指定すればよいですか? オプションを指定しないと、32 ビットの .o ファイルしか取得できません。

SourceForge からダウンロードしたfpc-2.4.0.intel-macosx.dmgを使用してfpc -iいます。 -bit Mac OS X (x86_64/ppc64)」。

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

events - Lazarus-ランタイムコンポーネントにイベントを割り当てられないのはなぜですか?

私はこのLazarusプログラムを持っています:

しかし、コンパイラはtlac.OnClick := OnTlacitkoClick;式に次のエラーを言います。

unit2.pas(63,32)エラー:「OnTlacitkoClick」の呼び出しに指定されたパラメーターの数が間違っています

私は検索しましたが、これはDelphiでの合法的な表現だと思います。このプロシージャを呼び出さずに、単にイベントハンドラOnTlacitkoClickとして登録したい。tlac.OnClick

コードに何か問題がありますか、それともLazarus / FreePascalで別の方法で行う必要がありますか?

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

delphi - TIdTCPServer と TIdTCPClient のどちらが pbx イベントに適していますか?

PBX のイベ​​ントに登録するために、いくつかの IP PBX システム、Asterisk、Freeswitch、および Yate を試しています。これらのコンポーネントのどれが優れているかを知りたいです。

コンポーネントは、イベントのために PBX に登録し、それらを受信し、いくつかの応答を送信し、いくつかのコマンドを発行することになっています。2つのうちどちらがより適切でしょうか?