バーコードリーダを使用する場合の処理

解決


グラフ  2007-06-12 20:56:32  No: 136693

いつもお世話になります。グラフです。
WinXP、VB6SP6です。

バーコードリーダを使用する場合の処理で質問です。

バーコードで読んだ内容を、テキストボックスに表示するとします。
現状は、フォームにある、全てのコントロールの
キーダウンイベントで、バーコードで読んだ内容をテキストボックスに
表示しています。

「現状は、フォームにある、全てのコントロールの」
という部分が、プログラムコードも多くなり、
コントロールを追加する場合に、気をつかわなくてはいけないので、
何か、良い方法はないかと、皆様の意見をお聞きしたいのです。

以上、よろしくお願いいたします。


ふち  2007-06-12 21:42:44  No: 136694

「バーコードで読んだ」

タイミングで

「テキストボックスに表示」

すればいいと思いますが、なぜ

「全てのコントロールのキーダウンイベント」

での表示なのでしょうか?


グラフ  2007-06-12 21:55:14  No: 136695

言葉が足りず、申し訳ございません。

他のコントロールがフォーカスを持っていた場合に、
バーコードを読み込むと、
フォーカスを持っているコントロールの
キーダウンイベントが発生してします為です。


シー  2007-06-14 01:29:37  No: 136696

ふちさんが仰ってる通り、
これまでの情報だけで考えると、

キーダウンイベントは使用せずに、
「バーコードを読み込んだら表示する。」
で良いような気がします。

私はいつも、タイマーに読込と表示をさせています。


魔界の仮面弁士  2007-06-14 01:47:02  No: 136697

> 全てのコントロールのキーダウンイベントで、
コントロールごとに設定せず、KeyPreview プロパティを設定した上で、
フォームの KeyPress 等で処理するのは駄目なのでしょうか?

また、キーボードインターフェイスタイプのリーダーだと、
「バーコード」なのか「キーボードからの入力」なのか
判定できないと思いますが、その点は問題にならないのでしょうか。


グラフ  2007-06-14 02:43:20  No: 136698

返信ありがとうございます。

PS/2のバーコードリーダを使用しています。

ふちさん。シーさん。
そこで、「バーコードを読み込んだ」という判別はできるのでしょうか。

> また、キーボードインターフェイスタイプのリーダーだと、
> 「バーコード」なのか「キーボードからの入力」なのか
> 判定できないと思いますが、その点は問題にならないのでしょうか。
「バーコード」の場合は、ヘッダとターミネータで処理しています。
また、ターミネータがこない場合のタイムアウトも用意しております。

> コントロールごとに設定せず、KeyPreview プロパティを設定した上で、
> フォームの KeyPress 等で処理するのは駄目なのでしょうか?
KeyPreviewプロパティを初めて知りました。
早速試してみます。


シー  2007-06-14 03:17:19  No: 136699

PS/2のリーダなのですね。

私は、普段232Cのリーダを使用していまして、
それを前提に、考えておりました。

失礼しました。


グラフ  2007-06-14 05:38:53  No: 136700

シーさん。ふちさん。
こちらの、環境の記載が足りず、
申し訳ございませんでした。

KeyPreviewプロパティをTRUEにすることで
できました。

皆様、いつもご教授ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加