問題タブ [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 - synmemoの最大長はどれくらいですか?
SourceforgeのSynmemoは、非常に優れたtxtエディターおよびコードハイライターのようです。長くアップグレードしないのは残念です。それは純粋なvclです。最大長を知りたいのですが。ロードできる最大のtxtファイルは何ですか?
ありがとう
lazarus - 型指定されていないファイルのバイトヘッダーを読み取り、FreePascalおよびLazarusのファイルストリームである場合にそのデータを使用および表示する方法
私はLazarusを使用してFreePascalを学習しようとしていますが、私のペットプロジェクトの1つは、テキストまたはASCII関連の手順を使用して読み取ったり表示したりできない(メモボックスなどに直接出力できない)タイプされていないファイルの特定のセットの64バイトヘッダーを読み取ることです。 )。
これまでのところ、ヘッダーの64バイトを読み取る次のコードを考案しました。これを行うには、Lazarus IRCを介して受け取ったアドバイスに基づいて、TStreamsと[ディレクトリの選択]ダイアログボックスを使用しています。私の質問は、ヘッダーからバッファーに読み込まれたデータを実際にどのように使用するかです。たとえば、ヘッダーには、8バイト、16バイト、2バイトなどのシーケンスがあり、「作業」して他の出力を生成し、最終的に文字列に変換して文字列グリッドに入れます。 。
私がこれまでに持っているもののいくつかは、終わり近くにメイソンウィーラーによって書かれたここで見つけたものに基づいています(http://stackoverflow.com/questions/455790/fast-read-write-from-file-in-delphi)が、それは読み方のみを示しており、使用方法は示していません。私もこれを読みました(http://stackoverflow.com/questions/4309739/best-way-to-read-parse-a-untyped-binary-file-in-delphi)が、データを読み取る方法を示していますも、その後はデータを使用しないでください。どんな指導も途方もなく受けました!これまでのところ、以下のコードは、たとえば8つの16進値の範囲とは対照的に、単一値の整数を編集ボックスに出力するだけです。
PS-私はプログラミングに不慣れなので、優しくしてください!複雑すぎることはありません。
delphi - Delphi: PopupMenu がコンポーネントで機能しない
英語の翻訳(しばらく前なので、完全に正確ではないかもしれません。問題があった部分にはGoogle翻訳を使用しました):
と呼ばれるプロパティを持つ Delphi のビジュアル コンポーネント (標準の Delphi コンポーネントではありません) に取り組んでいますPopupMenu
。コンポーネントのプロパティPopupMenu
を PopupMenu に関連付けましたが、[マウスの] 右ボタンをクリックしても何も表示されません。
また、このコードで強制的に表示しようとしました:
2 つの質問があります。
マウスの右クリックがアクティブであることをどうやって知ることができますか? この種の問題に遭遇した人はいますか?回答ありがとうございます。
ありがとう
編集
手順を実行するために使用している手順は次のとおりPopupMenu1:
です
pascal - Pascal-read / readln関数の不純物?
私は本当に興味があります-なぜあなたは置く必要があるのですか
キーボードから変数に値を読み取った後の行?例えば、
次のコードを実行し、キーボードの「1」を押すと、次のような出力が得られます。
一方、その「readln;」を追加すると、ライン、それはすべて完璧に動作します:
私の唯一の推測は、引数なしでreadlnを呼び出すと、キーボード入力を読み取るプロセスが終了するということです。しかし、もしそうなら、なぜそのような不器用さを避けるために、read / readln関数が入力自体の読み取りを停止できないのですか?
datetime - Pascalを使用して日付間の日数を計算するにはどうすればよいですか?
日付はDateTimeの形式で保持します。日数を計算するためのどのアルゴリズム?
c - この一意のファイル ヘッダー '特別なマーカー' は、eCryptfs ファイルであることを eCryptfs にどのように伝えますか?
eCryptfs ファイルのヘッダーを解析するプログラム (C ではなく Free Pascal を使用) を作成しています。
ヘッダーの値の 1 つはバイト 7 で始まり、15 で終わります (8 バイト値)。ファイルを eCryptfs ファイルとして一意に識別する値であるため、私にとっては役に立ちます。そのため、ファイルにそのような値が見つかったときにそれを認識するようにアプリをコーディングしようとしています。
ただし、マーカー自体は、ランダムに生成された 4 バイト値 (X) と別の 4 バイト静的 16 進値 0x3c81b7f5 (Y) を XOR することによって生成されます。生成された値は 4 バイトの Z です。X + Z を合わせて 8 バイトの特殊マーカーを形成します。Y 自体はファイル ヘッダーに格納されません。したがって、値 0x3c81b7f5 (Y) がヘッダーに格納されることは決してないので、それを探すようにアプリケーションをコーディングすることはできません。他の 4 バイトは、ある静的な値と別のランダムな値との XOR の結果であることを確認できます。 、どのように認識されているのかわかりません。
eCryptfs Launchpad サイト ( https://answers.launchpad.net/ecryptfs/+question/152821 ) で eCryptfs プログラムがこの値を「eCryptfs ファイル」として認識する方法を尋ねたところ、コミュニティの 1 人が関連する C ソース コードを紹介してくれました。以下にリンクしています.しかし、私はCが特別なマーカーをどのように認識しているかを理解するのに十分なほどよく理解していません.同じ種類の認識プロセスを自分のアプリにコーディングできるように、誰か助けてもらえますか?ソースコードは必要ありませんが、C コードがどのように機能するかを誰かに説明してもらいたいだけです。
http://fxr.watson.org/fxr/source/fs/ecryptfs/crypto.c?v=linux-2.6;im=excerpts#L1029
installation - Lazarus で自己インストール パッケージを配布するにはどうすればよいでしょうか
Delphi の仮想文字列ツリーの自己インストール実行可能ファイルを見てきました。
Lazarus/FreePascal についても同様のことを考えているので、私の質問は地図や指示のリストを求めるようなものです:
パッケージ フォルダーの場所を特定するにはどうすればよいですか? パッケージを Lazarus のリストに追加するにはどうすればよいですか? Lazarus の再コンパイルをトリガーするにはどうすればよいですか?
私は Object-Pascal プログラマーが下手というわけではありませんが、FPC や Lazarus ツールチェーンのフォルダー構造と依存関係に関してはまったくの初心者です。
どうもありがとう、
ガス
PS: 回答するのは Marco になると思いますが、コミュニティの他のメンバーが努力して、もう少し情報を提供してくれませんか?
いずれにせよ、本当にありがとうございました!!
linux - TEdit への入力の登録 (Delphi/Free pascal)
私はTEditフィールドを持っており、それにフォーカスしている間にENTER/RETURNボタンを押すとアクションリストからアクションを呼び出す必要があります(ほとんどの検索エンジンのように)。Lazarus 0.9.28.2-12 および Ubuntu 11.04 の使用
loops - Pascal の無限ループ、どうして?
Inno Setup で使用するために、ファイル内の行全体またはその一部を置き換える Pascal 関数を作成しました。
以前は問題なく動作していましたが、FilePath で指定されたファイルの各行で最初に出現した OldLinePart のみを Replacement に置き換えていました。それが繰り返しループを追加したときです。Pos()
これ以上オカレンスが見つからない場合、ロジックは 0 を返します。その後、次の行に進む必要があります。しかし、真実はループが無限に続き、その理由がわかりません。の句にBreak
ステートメントを追加しようとしましたが、うまくいきません...else
if FoundAtPos > 0
追記:明らかに遅くなりました。OldLinePart を非常に長い文字列に置き換えていました...同じ単語が含まれていました。
この問題は次のように解決されました。
delphi - Delphi 依存性注入: フレームワーク vs 委任コンストラクタ
次のパターンを簡単に使用できるのに、なぜ依存性注入フレームワークを使用するのでしょうか?
これを行う代わりにフレームワークを使用する利点を把握しようとしていますが、これまでのところ、この単純なアプローチの利点しかわかりません。
1) パラメーター化されたコンストラクターは実装が簡単です。例: var CreateSomeOtherService: function(aValue: string);
2) 高速 (コンテナ内でルックアップが不要)
3) よりシンプルに
これは私がそれを使用する方法です:
このアプローチの代わりに DI フレームワークを使用する理由は何ですか?
DI フレームワークを使用すると、これはどのように見えるでしょうか?
私が知る限り、具体的なクラスをインターフェイスに対して登録するよりも DI フレームワークを使用する場合は、システムのコンシューマーが特定のフレームワークの実装を要求します。したがって、登録呼び出しがあります。
ISomeInterface の実装が必要な場合は、DI フレームワークに要求できます。
明らかに、パラメータを渡して ISomeInterface を作成する必要がある場合は、DIFramework を使用すると全体がより複雑になります (ただし、上記のアプローチでは単純です)。