{ 공부하시는데 조금이라도 도움이 될까 해서
현재의 한영전환 모드 얻는 방법과 모드 전환 하는 방법을
간단한 소스와 함께 적어 봅니다.
그럼 도움 되시길...
- 충청도 에서 상식이 였습니다. - }
// 'uses' Clause 에 'Imm' 을 추가함.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs, Imm, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure ConvK_Emode;
function GetK_Mode: Boolean;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
K_Emode : HIMC;
procedure TForm1.ConvK_Emode; // 한/영 모드 전환
begin
K_Emode := ImmGetContext(handle);
if GetK_Mode then // 한글모드이면 영문모드로
ImmSetConversionStatus(K_Emode, IME_CMODE_ALPHANUMERIC,
IME_CMODE_ALPHANUMERIC)
else // 영문모드이면 한글모드로
ImmSetConversionStatus(K_Emode, IME_CMODE_HANGEUL,
IME_CMODE_HANGEUL);
end;
function TForm1.GetK_Mode: Boolean; // 한/영 모드 얻기
var
Conversion, S: DWORD;
begin
K_Emode := ImmGetContext(handle);
ImmGetConversionStatus(K_Emode, Conversion, S);
if Conversion = IME_CMODE_HANGEUL then
GetK_Mode := True
else
GetK_Mode := False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ConvK_Emode;
if GetK_Mode then Label1.Caption := '한글'
else Label1.Caption := '영문';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
if GetK_Mode then Label1.Caption := '한글'
else Label1.Caption := '영문';
end;
end.
|