Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
한자키가 disable되게하려면?
델파이로 한자폰트 출력프로그램을 만드는데
F9으로 폰트를 선택해서 처리하려고 합니다
그러다보니 키보드상의 한자키와 중복이 되는데
키보드상의 한자키를 눌렀을때 화면하단에
한자박스가 뜨지않게 하려면 어떻게 해야할까요
Keydown이벤트에서 처리해야 할것 같은데
고수의 도움 바랍니다
1
COMMENTS
최용일
•
2000.03.16 04:49
전역적인 핫키를 사용하십시오.
근데 F9를 누르면 한자박스가 뜹니까???? 이상하군요. 저의 키보드는
F9와 한자키가 절대 중복이 되지않는데... 저만그런가요...
저의 키보드를 기준으로 하면 한자키의 스캔코드는 $19입니다.
다음과 같이 전역핫키를 등록하여 사용하세요. 구창민님의 예제를 좀 고쳤습니다.
unit Unit1;
interface
uses Windows, Messages, Classes, Controls, Dialogs, Graphics, Forms, ExtCtrls,
StdCtrls, SysUtils;
type
TForm1 = class(TForm)
procedure FormCreate(sender: Tobject);
procedure FormDestroy(sender: Tobject);
private
// ATOM은 Windows유닛에 선언된 타입으로 16비트 부호없는 정수(Word)형입니다.
FHotKey: ATOM; // 핫키에대한 인덱스를 저장하는 변수입니다.
protected
// 핫키를 처리하는 메세지 핸들러.
procedure WMHotKey(var msg: TWMHotKey); message WM_HotKey;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
// 핫키가 눌려지면 이 메세지 핸들러가 실행됩니다.
// TWMHotKey는 Messages유닛에 저장되어 있습니다.
// TWMHotKey.HotKey값에 눌려진 핫키의 인덱스가 들어있습니다.
begin
; // 여기에서 핫키가 눌릴때 필요한 처리를 하세요...
; // 그냥 Disable만 하실려면 아무런 코드도 넣지마세요...
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// GlobalAddAtom은 문자열에 대한 전역적인 인덱스(Atom)를 추가하는 함수입니다.
// 전역적인 Atom 테이블은 윈도우즈가 관리합니다.
FHotKey := GlobalAddAtom('MyHotKey');
// RegisterHotKey는 윈도전체에 대한 핫키를 등록하는 API함수입니다.
// 첫번째 파라매터는 이 핫키를 받을 윈도우 핸들을 넣어줍니다. 여기에선
// TForm1의 핸들이 되겠죠...
// 두번째 파라매터는 위에서 구한 ATOM값을 써주시교,
// Alt, Ctrl, Shift키와 함께 쓰려면 세번째 파라매터에다 MOD_ALT, MOD_CONTROL,
// MOD_SHIFT를 써주시고 그렇지 않으면 0을 넣어주시면 됩니다.
// 네번째 파라매터는 핫키의 가상키값입니다. 가상키값은 Windows유닛에 보시면
// 많은 키값들이 정의되어있습니다. '0' ~ '9', 'A' ~ 'Z'를 키값으로 쓰려면
// 그냥 그 키에 대한 아스키값을 넣어주시면 됩니다.
// 키보드상의 한자키에 대한 스캔코드를 넣어주시면 됩니다.
// 제 키보드에서의 한자키의 스캔코드는 $19입니다.
// F9를 핫키로 사용하실려면 마지막 파라매터에 F9의 가상키값인 vk_F9를 넣어주세요
if RegisterHotKey(Handle, FHotKey, 0, $19) = False then
// 핫키등록이 실패하면 에러 메세지를 출력합니다.
ShowMessage('HotKey Registration Failed');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// 등록된 핫키를 제거합니다.
UnRegisterHotKey(Handle, GlobalDeleteAtom(FHotKey));
end;
end.
천승원 wrote:
> 델파이로 한자폰트 출력프로그램을 만드는데
> F9으로 폰트를 선택해서 처리하려고 합니다
> 그러다보니 키보드상의 한자키와 중복이 되는데
> 키보드상의 한자키를 눌렀을때 화면하단에
> 한자박스가 뜨지않게 하려면 어떻게 해야할까요
> Keydown이벤트에서 처리해야 할것 같은데
> 고수의 도움 바랍니다
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
이영이
•
2000.03.16 16:57
2
COMMENTS
/
0
LIKES
DB공유에 대하여...
hart
•
2000.03.16 18:27
한 컴퓨터에서 실행화일 위치하고 다른 컴퓨터에서 여러명이 실행하려면, 락 화일는 실행자 자신의 컴퓨터...
이영일
•
2000.03.17 02:10
저도 아래와 같이 시도해보았지만 무엇이 잘못된 것인지 Paradox.lck, Pdoxusrs.lck가 지정한 디렉토리와 ...
한수영
2000.03.16 16:53
0
COMMENTS
/
0
LIKES
Query1.Prepae, Query1.Unprepare.....
하이에나
•
2000.03.16 13:06
1
COMMENTS
/
0
LIKES
[Q] 웹서버프로그램이 linux에서는 안되는 건가요?
이주흥
•
2000.03.16 18:19
하이에나 wrote: > 안녕하세요. > > 델5로 웹서버 프로그램을 만들어서 linux서버에 심으려고 생각했었...
최두승
•
2000.03.16 09:33
1
COMMENTS
/
0
LIKES
calcfield의 합계계산 방법
유레카
•
2000.03.16 21:01
최두승 wrote: > 저는 교육연수부에 근무하고있습니다 > 그래서 업무를 효율적으로 하기 위해서 프로그램...
조상은
•
2000.03.16 06:05
1
COMMENTS
/
0
LIKES
컴파일중 에러 발생... 'ERegistryException'
류종택
•
2000.03.16 08:21
DMbase1의 OnCreate또는 초기화 부분의 소스가 있어야 겠네요.. 아니면 ActiveX 등을 사용하셨던지요.. ...
Go100
•
2000.03.16 06:01
3
COMMENTS
/
0
LIKES
SQl문 Error확인좀 부탁드립니다.
조피디
•
2000.03.16 20:47
안녕하세요.. 식이없다는 메세지는 주로 SQL문 문법에서 에러가 나서 그런데요.. 소스를 좀 정리를 해...
류종택
•
2000.03.16 08:18
우선 한 가지 간단한 버그만 언급합니다.. SQL문은 다 읽어보지 못했습니다 죄송.. SQL문 에러라면 SQL P...
최성진
•
2000.03.17 03:30
SQL.Add('GROUP BY A.LINE_NAME,A.SRCKEY,A.SRCIFINDEX,C.IFNAME,'); SQL.Add('C.IP, A.DESTKEY, A.DESTI...
정말궁금
•
2000.03.16 05:33
1
COMMENTS
/
0
LIKES
현재 떠있는 홈페이지의 텍스트만 가지고 올려면
류종택
•
2000.03.16 08:12
아래와 같이 하세요.. From 류.. --------- Uses NMHttp; Function GetHTTP(URL:Strin...
장두현
2000.03.16 05:29
0
COMMENTS
/
0
LIKES
여러고수님들의 도움을바랍니다..
seoulite
2000.03.16 05:22
0
COMMENTS
/
0
LIKES
마우스 클릭 효과
최용일
2000.03.16 05:14
0
COMMENTS
/
0
LIKES
에러가 있습니다.
하명훈
•
2000.03.16 05:10
1
COMMENTS
/
0
LIKES
윈98에서 서버/클라이언트 프로그래밍할 방법......
하얀까마귀
•
2000.03.16 05:26
안녕하세요 하얀까마귀 입니다. 말씀하신 내용이 너무 포괄적이라서 답변을 하기가 좀 그렇네요... ...
정형모
•
2000.03.16 04:34
1
COMMENTS
/
0
LIKES
DbGrid에서 소계 표현방법
하얀까마귀
•
2000.03.16 05:30
안녕하세요 하얀까마귀 입니다.. 델파이에 들어있는 DBGrid로는 안됩니다.... 전혀.... 물론 방법이 ...
임택종
•
2000.03.16 04:34
1
COMMENTS
/
0
LIKES
질문.dbgrid
하얀까마귀
•
2000.03.16 05:33
안녕하세요 하얀까마귀 입니다... 잉 바로 위에도 있었는데... 쩝.. 소계를 어디다가 표시하실건데...
crystal(초보)
2000.03.16 04:25
0
COMMENTS
/
0
LIKES
그래프표시
천승원
•
•
2000.03.16 04:54
1
COMMENTS
/
1
LIKES
한자키가 disable되게하려면?
델파이로 한자폰트 출력프로그램을 만드는데 F9으로 폰트를 선택해서 처리하려고 합니다 그러다보니 키보드상의 한자키와 중복이 되는데 키보드상의 한자키를 눌렀을때 화면하단에 한자박스가 뜨지않게 하려면 어떻게 해야할까요 Keydown...
최용일
•
2000.03.16 04:49
전역적인 핫키를 사용하십시오. 근데 F9를 누르면 한자박스가 뜹니까???? 이상하군요. 저의 키보드는 F9...
optech
2000.03.16 04:02
0
COMMENTS
/
0
LIKES
diamond access에관해서
왕초짜
•
2000.03.16 03:50
3
COMMENTS
/
0
LIKES
OpenDialog에서요....ㅠ.ㅠ
최용일
•
2000.03.16 04:01
TOpenDialog.Execute를 호출할땐 취소버튼을 눌르면 결과 값에 False값이 들어갑니다. 왕초짜 wrote: >...
왕초짜
•
2000.03.16 04:46
최용일 wrote: > TOpenDialog.Execute를 호출할땐 취소버튼을 눌르면 결과 값에 False값이 들어갑니다. >...
최용일
•
2000.03.16 04:58
그렇지 않습니다. True가 들어갑니다. 다이얼로그박스가 닫힌다고해서 False값이 들어가 는것은 아닙니다....
김진석
2000.03.16 03:43
0
COMMENTS
/
0
LIKES
★~~EhDBgrid에대한 사용법....아상타~~★
송기원
2000.03.16 03:30
0
COMMENTS
/
0
LIKES
질문 ===> [파일 I/O Hooking 방법]
한수영
•
2000.03.16 03:15
2
COMMENTS
/
0
LIKES
Query1.Prepare과 Query1.UnPrepare
빡수홍
•
2000.03.16 04:08
한수영 wrote: > 안녕하세요. 델파이 초보입니다. > > Query1에서 Query1.Open전에 > Query1.Prepare...
한수영
•
2000.03.16 04:16
빡수홍님 감사합니다. 저도 빡수홍님의 내용은 모출판사의 서적에서 읽은바 있습니다. 그런데 왜 로컬...
천승원
2000/03/16 04:54
Views
232
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
근데 F9를 누르면 한자박스가 뜹니까???? 이상하군요. 저의 키보드는
F9와 한자키가 절대 중복이 되지않는데... 저만그런가요...
저의 키보드를 기준으로 하면 한자키의 스캔코드는 $19입니다.
다음과 같이 전역핫키를 등록하여 사용하세요. 구창민님의 예제를 좀 고쳤습니다.
unit Unit1;
interface
uses Windows, Messages, Classes, Controls, Dialogs, Graphics, Forms, ExtCtrls,
StdCtrls, SysUtils;
type
TForm1 = class(TForm)
procedure FormCreate(sender: Tobject);
procedure FormDestroy(sender: Tobject);
private
// ATOM은 Windows유닛에 선언된 타입으로 16비트 부호없는 정수(Word)형입니다.
FHotKey: ATOM; // 핫키에대한 인덱스를 저장하는 변수입니다.
protected
// 핫키를 처리하는 메세지 핸들러.
procedure WMHotKey(var msg: TWMHotKey); message WM_HotKey;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
// 핫키가 눌려지면 이 메세지 핸들러가 실행됩니다.
// TWMHotKey는 Messages유닛에 저장되어 있습니다.
// TWMHotKey.HotKey값에 눌려진 핫키의 인덱스가 들어있습니다.
begin
; // 여기에서 핫키가 눌릴때 필요한 처리를 하세요...
; // 그냥 Disable만 하실려면 아무런 코드도 넣지마세요...
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// GlobalAddAtom은 문자열에 대한 전역적인 인덱스(Atom)를 추가하는 함수입니다.
// 전역적인 Atom 테이블은 윈도우즈가 관리합니다.
FHotKey := GlobalAddAtom('MyHotKey');
// RegisterHotKey는 윈도전체에 대한 핫키를 등록하는 API함수입니다.
// 첫번째 파라매터는 이 핫키를 받을 윈도우 핸들을 넣어줍니다. 여기에선
// TForm1의 핸들이 되겠죠...
// 두번째 파라매터는 위에서 구한 ATOM값을 써주시교,
// Alt, Ctrl, Shift키와 함께 쓰려면 세번째 파라매터에다 MOD_ALT, MOD_CONTROL,
// MOD_SHIFT를 써주시고 그렇지 않으면 0을 넣어주시면 됩니다.
// 네번째 파라매터는 핫키의 가상키값입니다. 가상키값은 Windows유닛에 보시면
// 많은 키값들이 정의되어있습니다. '0' ~ '9', 'A' ~ 'Z'를 키값으로 쓰려면
// 그냥 그 키에 대한 아스키값을 넣어주시면 됩니다.
// 키보드상의 한자키에 대한 스캔코드를 넣어주시면 됩니다.
// 제 키보드에서의 한자키의 스캔코드는 $19입니다.
// F9를 핫키로 사용하실려면 마지막 파라매터에 F9의 가상키값인 vk_F9를 넣어주세요
if RegisterHotKey(Handle, FHotKey, 0, $19) = False then
// 핫키등록이 실패하면 에러 메세지를 출력합니다.
ShowMessage('HotKey Registration Failed');
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// 등록된 핫키를 제거합니다.
UnRegisterHotKey(Handle, GlobalDeleteAtom(FHotKey));
end;
end.
천승원 wrote:
> 델파이로 한자폰트 출력프로그램을 만드는데
> F9으로 폰트를 선택해서 처리하려고 합니다
> 그러다보니 키보드상의 한자키와 중복이 되는데
> 키보드상의 한자키를 눌렀을때 화면하단에
> 한자박스가 뜨지않게 하려면 어떻게 해야할까요
> Keydown이벤트에서 처리해야 할것 같은데
> 고수의 도움 바랍니다