問題タブ [pascal]

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 投票する
3 に答える
4263 参照

string - Pascalで文字列のセットを使用するにはどうすればよいですか?

私は、ユーザーに人種とクラスを尋ねる小さなゲームを書いています。string[5]には5つの可能な種族があり、string[9]には4つの可能なクラスがあります。

パスカルを1.5つの種族と4つのクラスを定数として定義する、2。ユーザー入力をチェックして、複数のIFステートメントを使用せずに、入力が可能な種族とクラス内にあるかどうかを確認するにはどうすればよいですか?

ヒントをいただければ幸いです。

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

delphi - OWL/BP7 アプリケーションを Delphi に変換するには?

古い Borland Pascal 7 / OWL で書かれた大規模な 16 ビット Windows GUI アプリケーションを Delphi に変換するには、どのツール/アプローチをお勧めしますか?

OWL と VCL のかなり大きな違い、および 16 ビット パスカルでのポインター操作と Delphi での文字列とオブジェクトの最先端の使用との違いを理解する - ほぼ完全に回避するのに役立つ方法/ツールはありますかアプリケーションの書き換え?

0 投票する
8 に答える
18266 参照

delphi - Delphi/Pascal 用の静的コード分析ツールはありますか?

Delphi/Pascal 用の静的コード分析ツールはありますか?

C++ と .NET のオプションはたくさんありますが、Delphi/Pascal のオプションはありません。

理想的には、継続的インテグレーション システムに統合できるものです。

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

delphi - Mac用のLazarusでshellexecute()と同等の機能を実行するにはどうすればよいですか?

shellexecute()Mac用のLazarusで同等の機能を実行するにはどうすればよいですか?

0 投票する
4 に答える
16990 参照

delphi - Delphi - 型指定されていないポインタから取り込まれた動的配列からのデータへのアクセス

私はDelphi 2009を使用していますが、それが私がしていることに大きな影響を与えているわけではありません。私がまだ2007にいたら、同じことに出くわすと思います。

データをポインターに出力する scsi 呼び出しがあります (間違った見方をしていますが、それを説明するのに苦労しています)。

もともとMoveを使用して、戻ってきたデータをByteの静的配列に入力しましたが、呼び出し時に長さがわかっている動的配列に切り替えたいと思います。私はさまざまな結果でいくつかのことを試しましたが、データを取得するものもあれば、アクセス違反が発生するものもあれば、エラーはありませんが無効なデータを取得するものもあります。

配列にsetlengthを追加してからmoveを使用すると、最初に設定された長さの空の配列があり、次に、移動後のデバッガーで、静的だったときのようにOutputData[0]のようにデータにアクセスできなくなりますすべてが手に負えない値または何でもとして表示されます。

以下は、反対が動的配列を取り、そのアドレスをポインターに与えたという記事を読んだ後に試したものです。データを孤立させるなどの間違いを犯すことについて言及しました。

eoutput データが文字列や 16 進数などで出力されるために使用されるその他のさまざまなものがあります。

とにかく、ポインターを取得してそのデータを動的配列に入れ、配列をアドレス指定する方法でそのデータを取得するにはどうすればよいでしょうか。

ありがとう。

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

delphi - WMDeviceChange関数が他の関数/手順を呼び出すときのDelphi Pascalの問題

解決した

私はdelphi 2009を使用しています。私のプログラムは、接続されているUSBドライブをリッスンして取り外します。過去 1 年間で 10 個のアプリで非常によく似たコードを使用しました。それは常に完璧に機能しています。移行したとき、thddinfo を使用してドライブ モデルを取得することをあきらめなければなりませんでした。これは、WMI の使用に置き換えられました。WMI クエリには物理ディスク番号が必要ですが、たまたまそれを行うための関数がアプリに既にあります。

テストとして、これをボタンに入れて実行すると、psp が物理ドライブ 4 であると正常に判断され、モデルが返されます (すべてデバッガーでチェックされ、別の例では show message を使用しています)。

1 年間使用してきた WMDeviceChange が getphysicaldisknumber と wmi クエリ ステートメントを呼び出すことを許可するまでは、完全に機能します。私はそれらを単独で試しましたが、どちらも問題です。GetPhysicalDiskNumber は、論理ディスクで CloseHandle を実行しているときに非常にフリーズしますが、最終的には数値を返します。WMI クエリはエラーなしで失敗し、接続が発生しなかった wbemscripting_tlb に '' デバッガー ポイントが返されます。1 年で変更された唯一のことは、私が API 呼び出しを使用していたモデルを取得するために呼び出しているものであり、現在は別のものを使用していることに注意してください。

以下は、上に表示されている ispsp を除く、現時点で関連する残りのコードです。

ロブは、継承されたメッセージハンドラーを呼び出さないことについて以下のことを言っています。ドキュメントを読んで、返すことができるものがいくつかあります...しかし、理解できるかどうかはよくわかりませんが、調べてみます。私はあまり優れたパスカル プログラマーではありませんが、多くのことを学んでいます。2009 年への移行には、大まかなパッチもいくつかありました。

USBドライブの検出とすべてが完全に機能します。is psp から 2 つのものを削除すると、ユーザーはすぐに wis this your anything で迎えられ、I:\ がリストに追加されます。アプリで変更された 2 つの新しい変更は、wmdevicechange によって呼び出されたときに失敗し、前に述べたように、単独で機能します。

編集 - 解決済み

提案どおりにタイマーを使用すると、問題は解決したようです。1 つの注意点は、wmdevicechange の直後にタイマーによって呼び出された場合、物理ディスク番号の取得がまだ遅いように見えることです。これは、デバイスがまだシステムに接続されているためだと考えています。

そのメモでは、通常の P2 450 を使用しています。PSP とアプリを 1.8Ghz デュアル コア ラップトップに接続すると、プログラムが PSP を検出し、ユーザーに非常に迅速に通知しました。そのため、非常に遅いコンピューター上にない限り、アプリはフリーズしません。この遅いコンピューターでは、ほんの数秒であり、プログラムの動作には影響しませんが、非常にクールではありません。しかし、最近のすべてのコンピューターは、特にデバイスをはるかに高速に接続できるため、検出が高速に実行されると思います。

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

delphi - Delphi - Windows での SATA IO ポート番号の列挙

あなたのための新しいもの。別のプログラマーが自分のプログラムを C# から Delphi に移植するのを手伝う準備をしています。私は本当にC#を読むことができず、この時点で彼が実際のソースを送ってくれなかったので、議論から、一度に1つの機能の観点からこれらのほとんどに取り組むつもりだと思います。

システムに接続されているすべての SATA デバイス (デバイスを意味すると思います) の IO ポート番号を取得できる必要があります。私はWMIがそれをしないことを知っているので、これをどこから始めるべきかわかりません. このアプリの C# バージョンは、基本的にレジストリを解析する C# クラスを使用していることを知っています。私はいつもレジストリから直接読み取ることにうんざりしていました。可能であれば、Windows API などから情報を取得する方が、Windows のバージョン間で信頼性が高いと思います。

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

xml - Pascal - Re: 用途

次のプログラムはほとんど動作しますが、コンパイルしようとすると次のエラーが発生します。修正方法がわかりません。何か案は?

フォーム、「mainform.pas」のメインフォーム...

"unit1.pas(9): 、または ; 期待されていましたが、'IN' が見つかりました; "project1 は unit1.pas をコンパイルできませんでした

0 投票する
4 に答える
7454 参照

delphi - Delphi でユニット ファイルを使用する方法

コードをよりカプセル化するために、個別のユニットのコツをつかもうとしているだけです。メソッドの public/private 宣言を整理して、を使用する他のユニットから呼び出すことができるようにしようとしていますtestunit。この例では、公開したいhellofromotherunitstickletters非公開にしたい。

次のように、他のユニットからプライベート/パブリック構造をコピーできなかったようです。

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

inno-setup - Pascal (innosetup) を使用してファイルの最終更新時刻を取得する

innosetup スクリプトのアンインストール部分で、特定のファイルの最終更新日時が過去 10 分以内に発生したかどうかを確認するチェックを追加したいと考えています。

このための innosetup 互換パスカル コードを知っている人はいますか?