::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-04 20:18:30, Hit : 5580, Vote : 1395
 델파이 3.0에서 한글변환을 하는법....

> 안녕하세요....
> 이전 델파이 2.0에서는 IMM이라는 것으로 한글로 바꾸는 예제등이 많이 있는데...
> 3.0에서는 이것이 컴파일이 안되요...
> 2.0에서 한글/영문을 변환할수 있는 방법을 알고 싶고요...
> 지금 상태가 한글상태인지 영문상태인지 알수 있는 방법을 알고 싶어요...
> 델파이 초보가...
>

다음 source를 참고하시구요 부족한 부분이
있으시면 메일주세요.

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.





11   [멀티미디어] TMedia Player에서 BMP파일로 저장하기(화면 capture)  김영대 2003/03/04 4444 1250
10   [데이터베이스] TBlobField에 대한 사용법  김영대 2003/03/04 4880 1251
9   [시스템] 오직 하나의 프로그램만 실행...  김영대 2003/03/04 5019 1351
8   [시스템] Windows NT 에서 한글 NT인지 영문 NT인지 구분하는 방법  김영대 2003/03/04 5149 1343
7   [데이터베이스] DB의 Blob필드에 화일을 저장하기  김영대 2003/03/04 5105 1224
6   [일반/컴포넌트] StringGrid의 Cell에 입력 값 제한 하기  김영대 2003/03/04 5861 1272
5   [윈도우즈 API] 도구모음 Bar는 어떻게 만드는지...  김영대 2003/03/04 4693 1325
4   [시스템] 다른 Application 생성과 소멸에 대하여...  김영대 2003/03/04 4821 1299
3   [시스템] 떠 있는 프로그램 죽이기...  김영대 2003/03/04 5657 1388
  [윈도우즈 API] 델파이 3.0에서 한글변환을 하는법....  김영대 2003/03/04 5580 1395
1   [네트웍/인터넷] Internet에 연결중인지 여부를 알려면...  김영대 2003/03/04 5171 1330

[이전 10개] [1]..[21][22][23][24] 25
 

Copyright 1999-2019 Zeroboard / skin by zero