4

私は POS (ペット プロジェクト) を開発しており、バーコード スキャナーを追加して売上をより迅速に取得することを考えています。現在、スキャナーを持っていません。ちょっと行き詰っているので、いくつか質問したいと思います。

私の最初のアイデアは、販売画面にTEditコンポーネントを配置し、人が製品をスキャンすると文字列で埋められるというものTEditでした。今私が直面している問題はTEdit、人が見えないように見えないようにしたいということです。しかし、一度目にTEdit見えないものを作ると、それに焦点を合わせることができなくなり、その計画は機能しません。

スキャンされた文字列を「キャプチャ」するために使用できるものを誰かが提案できますか? コンポーネントがリッスンしてスキャナーを待機するようにするにはどうすればよいですか? スキャナーは、ボタンを押したり上げたりするなど、通常のキーボードイベントのようになると思います。

4

4 に答える 4

6

TFormにはKeyPreviewプロパティがあります。trueに設定すると、すべてのキーの押下がコントロールの前に最初にフォームによって処理されます。

Delphiでのキーボード処理に関する記事:http://delphi.about.com/od/objectpascalide/a/keyboard_events.htm

関連するSOの質問:DelphiのKeyPreviewはどのように機能しますか?

于 2013-02-27T17:28:47.427 に答える
6

私が行ったことは、KeyPreview を使用して、バーコード スキャナーがプレフィックス スキャンに設定されている F9 のようなファンクション キーを監視することです。これを受け取ると、1 つの編集ボックスと [OK] ボタンを含むダイアログをポップアップ表示します。これにより残りのバーコード情報が受信され、スキャナは Enter キーでエントリを終了します。次に、スキャンしたデータの目的を判断し (私の場合、1 つのタイプはプレフィックスで始まります)、メイン フォームの適切なフィールドにデータを入力します。

私が F9 を選択したのは、ほとんどのアプリケーションで不活性に見えるため、スキャナーを他の方法で使用できるためですが、柔軟性のために他のキーもサポートしています。私のアプリケーションには、送信されたキーを表示するスキャナー テスト モードもあります。

于 2013-02-27T18:00:09.117 に答える
3

高さと幅が 0 の TEdit を使用して表示されないようにし、バーコードをスキャンしたときにフォーカスされるようにします。

于 2013-03-25T10:38:05.780 に答える