2012-03-16 2 views
0

사용자에게 바코드 또는 RFID 태그를 스캔하도록 요청하고 싶습니다. MessageDlg() 또는 작은 폼을 의미합니다 (어떤 것이 든 상관 없으며 조언을 구합니다).하드웨어 이벤트 발생시 프롬프트 양식이나 대화 상자를 닫는 방법은 무엇입니까?

직렬 포트 또는 HID (또는 타이머 또는 WM_xxxx)를 통해 스캔을 읽을 때 해당 프롬프트를 닫으려고합니다.

가장 간단한 방법은 무엇입니까? 감사합니다

+3

'ShowModal'을 사용하여 양식을 보여줄 수 있으며 스캔이 끝나면 해당 양식의 'ModalResult'를 0 이외의 값으로 설정하십시오. – TLama

+0

독자는 데이터 끝에 맞춤 문자를 추가 할 수 있습니다. 따라서 ''키 – mjn

+0

downvote를 시뮬레이션하는 것이 쉽습니다. 누군가 RFID를 좋아하지 않습니까? – Mawg

답변

2

우리는 우리의 응용 프로그램에이 기능을 더 많이 갖추고 있습니다. 유용 할 수도 있으므로 충분히 설명하겠습니다.

우리는 사용자가 키보드로 키 입력하거나 바코드 태그를 스캔하여 장치의 일련 ID를 입력 할 수있는 모달 대화 상자를 제공합니다.

1 단계. 단축키 (단축키 : Ctrl + Alt + N)가있는 메뉴 항목이 있습니다. 스캐너가 바코드를 스캔 할 때마다이 프리앰블을 보내도록 스캐너를 구성했습니다. (바로 가기에서 키잉과 동등한 수동). 모달 대화 상자가 열립니다.

2 단계 포커스는 사용자와 키보드 또는 바코드를 읽는 스캐너에서 시리얼 ID를 가져 오는 편집 상자에 있습니다.

3 단계 [확인] 및 [취소] 버튼이 있습니다. 확인 단추는 Default:=TrueModalResult:=mrOK입니다. 취소 단추는 Cancel:=TrueModalResult:=mrCancel입니다. 스캐너는 스캔 된 문자열에 사용자가 [Enter] 키를 누르거나 동일한 효과를 갖는 Enter 키를 붙이거나 OK 버튼을 클릭하도록 설정됩니다. ModalResult에서 mrOK로 모달 대화 상자를 닫습니다. 그러면 Edit.text를 다음으로 읽을 수 있습니다. SerialID를 얻는다.

단계 3bis. 사용자가 [Esc]를 누르거나 취소를 클릭하거나 제목 표시 줄 닫기 버튼으로 대화 상자를 닫습니다 : mrOK을 제외한 대화 상자를 닫고 편집에있는 내용을 모두 버립니다.

우리의 경우에 잘 작동합니다 HID 에뮬레이션 (키보드)으로 작동하는 모든 스캐너와 우리가 전처리를 구성 할 수있는 곳이 있습니다. (마지막에 Enter를 보내는 것은 우리가 시도한 모든 스캐너에서 기본적으로 사용되었습니다).

1

테두리 및 제목 (또는 닫기 버튼 없음) 및 stayontop없이 양식을 만들어 메시지 나 애니메이션 등을 추가 할 수 있습니다. 가능한 경우 사용자가 작업을 취소 할 수있는 취소 버튼을 제공하는 것이 가장 좋습니다.

양식을 처음 사용할 때 양식을 만들고 할당 된 양식을 확인하여 부모 양식에서 양식을 닫을 수 있습니다. 당신이 카드 (등)를 스캔 할 수있는 사용자를 필요로 할 때

은 그럼 그냥

  1. 다른 입력에 대한 부모 폼 잠금 당신이 예상하는,
  2. 양식을 보여 (showmodel되지 않음) 루프/부모 형태로 이벤트 기다립니다.
  3. 필요한 경우 다른 기능을 계속 처리 할 수 ​​있지만 예기치 않은 작업으로 인해 작업이 망가질 수 있으므로 매우주의하십시오.
  4. 조건이 충족되면 (스캔 완료 또는 취소 또는 시간 초과 등) 하위 양식 숨기기
  5. 부모 양식을 잠금 해제하고 계속하십시오.
+3

ShowModal이 더 좋을 것입니다. –

+0

@DavidHeffernan 제 자신의 경우 ShowModal은 쉽고 문제는 적지 만 더 좋을 필요는 없습니다. show를 사용하면 상위 폼은 여전히 ​​완전한 제어권을 가지며 필요할 경우 상위 폼의 일부 기능을 유지할 수 있습니다. 작업이 스캔 또는 실패와 같이 간단하다면 ShowModal을 구현하는 것이 더 쉽다는 것에 동의했습니다. – Justmade

+1

기본 양식 이벤트 처리기에서 모달 양식을 닫으려면 어떻게해야합니까? WM_CLOSE 게시 하시겠습니까? –

관련 문제