Q&A

  • 한영키 제어(델파이 2.0)
안녕하세요...

한영키제어에 관한 질문입니다.

델파이 2.0에서 자동으로 한글입력을 하려면 어떻게 해야합니까?

가르쳐 주세요..

1  COMMENTS
  • Profile
    바보감자 2001.02.28 05:28
    고광현 wrote:

    > 안녕하세요...

    > 한영키제어에 관한 질문입니다.

    > 델파이 2.0에서 자동으로 한글입력을 하려면 어떻게 해야합니까?

    > 가르쳐 주세요..

    음...델파이..2.0...이라..ㅡㅡ;;;;

    그건 잘 몰겠구요. 5.0 에서는 아는데..

    함 소스 일단 보여드릴께요 도움이라도 되실듯..

    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls, Imm, Buttons, Grids; // Imm을 추가했네요



    type

    TForm1 = class(TForm)

    StringGrid1: TStringGrid;

    procedure StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;

    const Value: String);

    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.StringGrid1SetEditText(Sender: TObject; ACol,

    ARow: Integer; const Value: String);

    var

    ro , co : integer;

    begin

    ro := stringgrid1.row;

    co := stringgrid1.col;

    if co = 2 then

    begin

    if GetHangeulMode then

    begin

    end else

    SetHangeulMode(True);

    end;

    if not(co = 2) then

    begin

    SetHangeulMode(false);

    end;

    end;



    end.

    아주 싸그리 올렸습니다.

    ^^ 참고해보세여..그럼..즐코 즈을코 하셈~~~

    지금 바뿌서... ^^ ms sql 배우는중 히히 ^^

    잼있땅