Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[174] 팁! 한영 입력상태 알아내기 및 전환하기
박지훈.임프 [cbuilder] 22037 읽음    1999-06-04 00:00
임프랍니다.
오늘의 팁은, 어플리케이션 수준에서 한영처리를 하는데 관련된 모든
코딩입니다.

먼저.. 현재의 한영 상태와 코딩으로 한영 전환하는 방법부터 알아봅시다.
현재의 한영상태를 알아내는 함수의 소스는...

// C++ 코드
bool __fastcall GetHanMode(void)
{
    unsigned long Conversion, Sentence;
    HIMC Mode = ImmGetContext(Application->Handle);
    ImmGetConversionStatus(Mode, &Conversion, &Sentence);
    return (Conversion == IME_CMODE_HANGEUL);
}


// 델파이 코드
function GetImeHanMode: boolean;
var
  Mode: HIMC;
  Conversion, Sentence: dword;
begin
  Mode := ImmGetContext(Application.Handle);
  ImmGetConversionStatus(Mode, Conversion, Sentence);
  result := Conversion = IME_CMODE_HANGEUL;
end;

이렇게 하면 됩니다. 이와 비슷하게, 한영상태를 토글하려면,

// C++ 코드
void __fastcall ToggleHanMode(void)
{
    unsigned long Conversion, Sentence;
    HIMC Mode = ImmGetContext(Application->Handle);
    ImmGetConversionStatus(Mode, &Conversion, &Sentence);
    if (Conversion == IME_CMODE_HANGEUL)
        ImmSetConversionStatus(Mode, IME_CMODE_ALPHANUMERIC, IME_CMODE_ALPHANUME
RIC);
    else
        ImmSetConversionStatus(Mode, IME_CMODE_HANGEUL, IME_CMODE_HANGEUL);
}


// 델파이 코드
procedure ToggleHanMode;
var
  Mode: HIMC;
  Conversion, Sentence: dword;
begin
  Mode := ImmGetContext(Application.Handle);
  ImmGetConversionStatus(Mode, Conversion, Sentence);
  if Conversion = IME_CMODE_ALPHANUMERIC then
    ImmSetConversionStatus(Mode, IME_CMODE_HANGEUL, IME_SMODE_NONE)
  else
    ImmSetConversionStatus(Mode, IME_CMODE_ALPHANUMERIC, IME_SMODE_NONE);
end;

비교적 간단하지요? ^^
그럼 도움되시길 바라면서, 이만..

독립문에서 임펠리테리였습니다.
장성호 [nasilso]   2009-12-09 11:19 X
delphi에선 유닛 Imm을 uses 하세요
덴뿌라배 [bic1004]   2010-12-07 12:57 X
잘쓸게요...임펠리테리님..ㅋㅋ

+ -

관련 글 리스트
174 팁! 한영 입력상태 알아내기 및 전환하기 박지훈.임프 22037 1999/06/04
(링크)     C++Builder Tip'N Tricks > 팁! 한영 입력상태 알아내기 및 전환하기
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.