Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
한영키 제어
windows.pas를 봐도 한영키의 가상키값은 없는 것같군요.
키값이 없다면 API로 제어를 할텐데 찾기가 힘들군요.
한영키의 상태를 체크하고 토글시킬 수 있는 방법을 알고 싶습니다.
도움을 부탁드립니다.
1
COMMENTS
김영대
•
1999.09.06 21:55
박성훈 께서 말씀하시기를...
> windows.pas를 봐도 한영키의 가상키값은 없는 것같군요.
> 키값이 없다면 API로 제어를 할텐데 찾기가 힘들군요.
> 한영키의 상태를 체크하고 토글시킬 수 있는 방법을 알고 싶습니다.
> 도움을 부탁드립니다.
이건 델파이 팁 사이트에 많이 있는건데...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Imm, Buttons; // Imm을 추가했네요
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
SpeedButton1: TSpeedButton;
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetHangeulMode(SetHangeul: Boolean);
function GetHangeulMode: Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{한글/영문 변환 루틴}
procedure TForm1.SetHangeulMode(SetHangeul: Boolean);
var
tMode : HIMC;
begin
tMode := ImmGetContext(handle);
if SetHangeul then // 한글모드로
ImmSetConversionStatus(tMode, IME_CMODE_HANGEUL,
IME_CMODE_HANGEUL)
else // 영문모드로
ImmSetConversionStatus(tMode, IME_CMODE_ALPHANUMERIC,
IME_CMODE_ALPHANUMERIC);
end;
{현재 한글/영문 상태}
function TForm1.GetHangeulMode: Boolean;
var
tMode : HIMC;
Conversion, Sentence: DWORD;
begin
tMode := ImmGetContext(handle);
ImmGetConversionStatus(tMode, Conversion, Sentence);
if Conversion = IME_CMODE_HANGEUL then
GetHangeulMode := True
else
GetHangeulMode := False;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
// Edit1에 focus가 오면 한글 모드로
SetHangeulMode(True);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
// Edit1에서 focus가 없어지면 영문 모드로
SetHangeulMode(False);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
// 현재 한글/영문 상태는 ?
if GetHangeulMode then
Label1.Caption := '한글'
else
Label1.Caption := '영문';
end;
end.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
Lyle
1999.09.07 00:24
0
COMMENTS
/
0
LIKES
thread 안에서의 pointer 오동작.
머털현석
•
1999.09.06 23:43
1
COMMENTS
/
0
LIKES
초시계를 만들고 싶은데
구창민
•
1999.09.07 04:47
머털현석 께서 말씀하시기를... > 초시계를 만들고 싶은데 00:00:00부터 시간을 시작하고 싶은데 어떻게 ...
김주영
•
1999.09.06 23:28
1
COMMENTS
/
0
LIKES
[테이블생성]TimeStamp Type Filed의 Format 정의
구창민
•
1999.09.07 05:01
김주영 께서 말씀하시기를... > 안녕하십니까? > > 델파이를 공부하던 중 의문점이 생겨 문의를 드립...
전길남
•
1999.09.06 23:26
1
COMMENTS
/
0
LIKES
Delphi Client에서 remote Server 명령 실행 어떻게????
김영대
•
1999.09.07 01:31
서버가 UNIX 계열인걸로 알겠습니다 UNIX/LINUX의 Rexec 포트를 사용해 보세요 Rexec는 포트번호 512 ...
윤광석
1999.09.06 22:36
0
COMMENTS
/
0
LIKES
dbGrid 그대로 출력하기
이우영
1999.09.06 22:35
0
COMMENTS
/
0
LIKES
DB작업시 일반적인 에러를 처리하는 방식은?
최진석
•
1999.09.06 20:47
1
COMMENTS
/
0
LIKES
FindFirst에 대해
김영대
•
1999.09.06 21:53
아래 예제를 참고해 보세요 파일 삭제루틴은 없습니다 // 아래 예제의 Memo1 은 검사용이므로 디렉토리...
이상민
1999.09.06 20:18
0
COMMENTS
/
0
LIKES
여러 Component들을 같이 이동시키는 방법?
조혜진
1999.09.06 19:02
0
COMMENTS
/
0
LIKES
[긴급]CreateOLEObject 가 안되는 이유??
허일학
1999.09.06 06:44
0
COMMENTS
/
0
LIKES
파라독스에서 Commit,Rollback은? 부탁
박성훈
•
•
1999.09.06 05:03
1
COMMENTS
/
1
LIKES
한영키 제어
windows.pas를 봐도 한영키의 가상키값은 없는 것같군요. 키값이 없다면 API로 제어를 할텐데 찾기가 힘들군요. 한영키의 상태를 체크하고 토글시킬 수 있는 방법을 알고 싶습니다. 도움을 부탁드립니다.
김영대
•
1999.09.06 21:55
박성훈 께서 말씀하시기를... > windows.pas를 봐도 한영키의 가상키값은 없는 것같군요. > 키값이 없다...
강동호
1999.09.06 03:13
0
COMMENTS
/
0
LIKES
(질문)dbgrid에 여러db파일 연결
황현동
•
1999.09.05 18:53
1
COMMENTS
/
0
LIKES
프로그램 크기가..이상해요~
구창민
•
1999.09.05 22:25
황현동 께서 말씀하시기를... > 원래.. 폼하나만 있어도. 크기가 200k 까량 되지 않습니까?? > ...
박성훈
1999.09.05 17:36
0
COMMENTS
/
0
LIKES
컴포트 동시제어
지승용
•
1999.09.05 01:31
1
COMMENTS
/
0
LIKES
마우스나 키보드의 제어
김영대
•
1999.09.06 21:57
지승용 께서 말씀하시기를... > 윈도우에서 마우스나 키보드를 사용못하도록 하거나 이를 다시 사용 가능...
댕이
1999.09.05 00:34
0
COMMENTS
/
0
LIKES
배포판 만들때.. 시리얼 넘버는.??
김수기
1999.09.04 23:53
0
COMMENTS
/
0
LIKES
10.2를 입력했는데 왜 10.199999가 입력되죠? please....
김수지
1999.09.04 23:49
0
COMMENTS
/
0
LIKES
Table Filtering 시 'Capability not Supported..' 무슨뜻
bluetin
•
1999.09.04 22:21
1
COMMENTS
/
0
LIKES
[급=질문]클라이언트 서버 프로그램 인스톨 디스켓 만들때..
댕이
•
1999.09.05 00:39
bluetin 께서 말씀하시기를... > mssql 7.0 을 서버를 사용하여 > > 프로그램을 작성 했는데.. > > ...
정강석
1999.09.04 22:11
0
COMMENTS
/
0
LIKES
group report 해결책
박성훈
1999/09/06 05:03
Views
1642
Likes
1
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> windows.pas를 봐도 한영키의 가상키값은 없는 것같군요.
> 키값이 없다면 API로 제어를 할텐데 찾기가 힘들군요.
> 한영키의 상태를 체크하고 토글시킬 수 있는 방법을 알고 싶습니다.
> 도움을 부탁드립니다.
이건 델파이 팁 사이트에 많이 있는건데...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Imm, Buttons; // Imm을 추가했네요
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
SpeedButton1: TSpeedButton;
procedure Edit1Enter(Sender: TObject);
procedure Edit1Exit(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SetHangeulMode(SetHangeul: Boolean);
function GetHangeulMode: Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{한글/영문 변환 루틴}
procedure TForm1.SetHangeulMode(SetHangeul: Boolean);
var
tMode : HIMC;
begin
tMode := ImmGetContext(handle);
if SetHangeul then // 한글모드로
ImmSetConversionStatus(tMode, IME_CMODE_HANGEUL,
IME_CMODE_HANGEUL)
else // 영문모드로
ImmSetConversionStatus(tMode, IME_CMODE_ALPHANUMERIC,
IME_CMODE_ALPHANUMERIC);
end;
{현재 한글/영문 상태}
function TForm1.GetHangeulMode: Boolean;
var
tMode : HIMC;
Conversion, Sentence: DWORD;
begin
tMode := ImmGetContext(handle);
ImmGetConversionStatus(tMode, Conversion, Sentence);
if Conversion = IME_CMODE_HANGEUL then
GetHangeulMode := True
else
GetHangeulMode := False;
end;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
// Edit1에 focus가 오면 한글 모드로
SetHangeulMode(True);
end;
procedure TForm1.Edit1Exit(Sender: TObject);
begin
// Edit1에서 focus가 없어지면 영문 모드로
SetHangeulMode(False);
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
// 현재 한글/영문 상태는 ?
if GetHangeulMode then
Label1.Caption := '한글'
else
Label1.Caption := '영문';
end;
end.