|
그렇군요.
case '1' 이렇게 해주니까 잘 되는군요.
정말 정말 감사드립니다. ㅠ.ㅜ
장성호 님이 쓰신 글 :
: code를 그냥 copy하시면 안됩니다.
:
: 1. 문의하신 Shift.Contains(ssCtrl) <<-- 이 부분은 현재 KeyBoard에 Ctrl키가 눌려져 있는지 확인하는 겁니다.
: Shift.Contains(ssShift) <<--이렇게 하면 shift 키가 눌려져 있는지 확인이 되구요
:
:
: 2. 그다음 switch 문에서 case 1 : <<--- 이부분을 고쳐야 합니다.
:
: Key보드에서 숫자 1을 입력하면 1이 아니라 '1' 이 들어옵니다.
:
: Key값 '1'은 ascii테이블을 참조하면 decimal로 49 네요
:
: 그러므로 case 문은
:
: case '1' : 로 해주던가?
: case 49 : 로 해주시던지
:
: 아니면 아래처럼 하는 방법도 있겠네요
:
:
: int inum=Key-48 ;
: switch(inum)
: {
: case 0:
: break;
: case 1:
: break;
: .....
:
: }
:
: 이상입니다.
:
:
:
:
: 허접 님이 쓰신 글 :
: : 자세한 답변 정말 감사드립니다.
: : 장성호님께서 가르쳐 주신대로 해봤는데, 안되네요.
: : 뭘 빠뜨렸나..... 한번 더 알려주세요~ ㅠ.ㅜ 정말 급합니다..
: : 그리고 소스에서, Shift.Contains(ssCtrl) <- 이 부분은, Ctrl 키를 함께 누르고 키를 눌러야 하는건지요......
: :
: :
: : 장성호 님이 쓰신 글 :
: : : 1. Form속성에 KeyPreView 가 있습니다. 이놈을 True로 해주시구요
: : : (이러면 Form위에 올려져있는 모든 Control의 Key Event가 Form으로 왔다가 갑니다.)
: : :
: : : 2. 그런 다음 Form의 KeyDown이벤트에서 처리해주시면 되겠네요
: : :
: : : void __fastcall TMain::FormKeyDown(TObject *Sender, WORD &Key,
: : : TShiftState Shift)
: : : {
: : : //enum Classes__1 { ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble };
: : : if(Shift.Contains(ssCtrl))
: : : {
: : :
: : : switch( Key)
: : : {
: : : case 1:
: : : Panel1Click(Panel1);
: : : break;
: : : ...
: : : }
: : : }
: : : }
: : :
: : : 너무 상세히 가르쳐 줬남?
: : :
: : :
: : : 허접 님이 쓰신 글 :
: : : : 안녕하세요.
: : : : 매일 삽질하고 있는 허접입니다. ㅠ.ㅜ
: : : : 오늘은 단축키를 만들려고 하는데요.
: : : : Panel이 10개가 있습니다.
: : : : 각 Panel을 클릭하면(버튼 대신 패널로 했습니다) RS232통신을 이용해서 데이터를 주고 받습니다.
: : : : 지금 그 기능은 잘 되고 있는데요.
: : : : 패널에 각각 번호를 부여했습니다. 1번 부터 10번까지......
: : : : Caption에 &1 ~ &0 해서 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 를 누르면 해당 번호의 패널을 누른 효과를 내게 하고 싶은데요.
: : : :
: : : : TApplicationEvents 라는 컴포넌트를 사용하라고 하시는 분들도 계신데, 어떻게 사용하는지도 모르겠네요. ㅠ.ㅜ
: : : : 도와주세요~ 고수님들~ ㅠ.ㅜ
|