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

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

delphi - プロパティとしてのクラス参照

特定の質問にまったく関係のない何億もの結果が得られるため、Google はこの種の検索には役に立ちません。

質問は単にこれです:

  • Delphi でクラス参照プロパティを使用することは可能ですか?
  • もしそうなら、どのように?

これが私が試したことです...

上記のコードは正常にコンパイルされますが、オブジェクト インスペクタにはObjectTypeプロパティがまったく表示されません。

ここでの私の目的 (まだ推測していない場合) は、特定の基本クラスからクラスの子孫を選択して、同じコンポーネントを別の方法で動作させることができるようにすることです。

コンポーネントがサブクラスについて直接知る必要がないように、このようにしたいと思います(完全にモジュール化する必要があります)。

このビットを明確にさせてください:コンポーネントはサブクラスの型に直接リンクできないため、Enumを使用してサブクラスの型を選択することはできません(この特定のケースでは単に不可能です)

とにかく... よろしくお願いします!

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

pascal - TStringList.Sortはソートされたインデックスを返すことができますか?

TStringList.Sortを使用して文字列のコレクションをフリーパスカルで並べ替えるには、最初の順序を覚えておく必要があります。ソートされたインデックスを返す可能性はありますか?そうでない場合、これを効率的に行うにはどうすればよいですか?

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

delphi - シンプルな Delphi 3d 関数

Delphi の必要最小限の古い学校の 3D メソッドの例を教えてくれる人はいますか? openGL、firemonkey、または外部ライブラリ (バニラ キャンバス コーディング) を使用していません。私がやりたいことは、共通のオリゴを中心に X 数のポイントを回転できるようにすることです。私が昔から覚えていることから、オリゴが常に0,0になるように(3Dポイントで)左から右を引きます-次に計算を実行し、最後に左/上のピクセルオフセットを追加して実際の画面位置を取得します。

私が探しているのは、一連の小さなアドホック ルーチンです。

  • RotateX(aValue:T3dpoint; degr:float):T3dPoint;
  • RotateY(--/--)
  • RotateZ(--/--)

これらの関数を使用すると、古い「回転する 3D キューブ」を簡単に作成できます (8 ポイント)。

また、目に見える「顔」を把握するための機能はありますか? 塗りつぶされたベクトル キューブが必要な場合は、(距離/オーバーラップに基づいて) 可視領域を抽出する必要があると思いますが、これは塗りつぶされたポリゴンの X 数として描画されますか? そして、これらは間違いなく、混乱しないように深さでソートする必要があります.

例えば:

  • PointsToFaces(const a3dObject:T3dPointArray):TPolyFaceArray;
  • SortFaces(Const aFaces:TPolyFaceArray):TPolyFaceArray;

どんな助けでも大歓迎です!

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

delphi - コンパイルされたアプリケーションのロケールIDを設定するようにFreePascalコンパイラに通知する方法

Delphiでは、プロジェクトのプロパティを表示するときに、[バージョン情報] ->[言語]->[ロケールID ]オプションがあります。
私は、FreePascalでコンパイルされているプログラムにそのようなプロパティを設定する方法をさまよっていました。
任意の解決策を歓迎します:コマンドライン引数または;などのプリプロセッサディレクティブ。{$key value}Delphiと同等です。

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

ide - コマンドラインからLazarusにIDEなしでパッケージをインストールする

(この)記事 を使用して、コマンドラインからIDEへのパッケージのインストールを自動化しようとしています。

IDEを使用すると、パッケージが正しくインストールされ、コンポーネントがLazarusパレットに表示されます。
記事の手順を確認するために、IDEでインストールした後、ファイルを一時フォルダーにコピーしidemake.cfgたのでpackagefiles.xml、そこにパッケージを登録しました。 staticpackages.incC:\Users\<user_name>\AppData\Local\lazarus

その後、成功せずに試しました 。1.IDEから
パッケージをアンインストールしました
。2。make clean allから呼び出しました。3。パッケージをc:\Lazarus
呼び出しlazbuildてビルドしまし
た。4。保持されているすべてのファイル(、、idemake.cfgおよびpackagefiles.xmlstaticpackages.incC:\Users\<user_name>\AppData\Local\lazarus
コピーしました。 7で最終的に8から呼び出されます 。代わりに試して同じ結果になりましたidemake.cfgc:\Lazarus
.lplC:\Lazarus\packager\globallinks
make idepkgC:\Lazarus
make bigidelazbuild --build-ide=

Lazarus IDEがビルドされて起動されたとき、インストールされたパッケージの中に自分のパッケージが表示されていましたが、でマークされていましたgreen "+"。パレットも私のコンポーネントを逃しました。
次に選択するとTool -> Build Lazarus with profile: Build IDE with Packages、IDEが2回再構築された後、パッケージが正しくインストールされます。

バージョン情報:

ラザロ:0.9.30.2
FPC:2.4.4
OS:Win 7

私は何かが足りないのですか?IDEなしでコマンドラインからパッケージを登録する代替手段はありますか?

前もって感謝します。

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

ubuntu - Free Pascal/Lazarus での Unity のグローバル メニューとオーバーレイ スクロールバーの処理

IDE でいくつかの問題が発生しましたが、グローバル メニューとオーバーレイ スクロールバーの設定を解除して無効にすることで修正されました。

Lazarus' Mantis: #0021465#0021467の問題を報告しました。
それについてもう少し話しているこのバグレポートもあります:#0019266

彼らの解決策は、設定解除を使用してグローバル メニューとオーバーレイ スクロールバーをオフにすることでした。

問題について簡単に検索したところ、Launchpad に未解決のバグ レポートがあります:オーバーレイ スクロールが lazarus で壊れています

それで、問題は「lib overlay scrollbar」に関連していますか?
そうである場合、グローバル メニューとオーバーレイ スクロールバーの両方をオフにしないようにするためのコードによる解決策はありますか?
そうでない場合、問題に注意して修正している人はいますか?

どうもありがとう、ガス

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

file - FreePascalでファイルを読み取る

指定された構造、つまり(各行に対して)char、space、char、space、double value、endlineのテキストファイルがあります。例えば

Free Pascalでこれらの値を「抽出」する適切な方法は何ですか?

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

linux - Freepascal、Indy SVNトランクバージョン、エンコード変換を削除するまで、XMLを転送するときにPHPクライアントは何も受信しません

フロントエンドレイヤーとしてPHPと通信するサーバーデーモン(Linux、Ubuntu)を作成しました。

最近、FPCとIndyライブラリの両方をFPC 2.6.0に更新し、Indyをトランクバージョンに更新しました(Tiburonブランチを使用する前)。

すべてコンパイルされ、すべて正常に見えましたが、IOHandlerに書き込むときに、(PHPクライアントによって)何も受信されない場合、クライアントは0バイトが受信されたことを報告します。

問題を詳しく調べた後、IOHandlerのwriteメソッドを使用すると、IdGlobal.pasのToBytes()メソッドで、応答が送信される前にエンコーディングが検証および変換されることがわかりました。

ここで、ToBytes()ルーチンの変換行をコメントアウトすると、

今回は、PHPクライアントが応答を受け取ります。

私の質問は、データのエンコードを停止するようにIndy tcpサーバーまたはIOHandlerを構成するにはどうすればよいですか?

0 投票する
5 に答える
12018 参照

pascal - パスカルでのタイプチェック

パスカルで型チェックを行うにはどうすればよいのでしょうか。私は今何時間も探していましたが、役に立つものを見つけることができませんでした。

例: