안녕하세요..^^;;
보통의 edit 컨퍼넌트들은 ImeMode 라는 것이 있어서 초기 입력값이 한글인지 아닌지를 정할수 있는데 FlatStyle에 포함된 FlatEdit 는 그런 기능이 없어서 그런데요...
'a' 를 입력하면 'ㅁ' 이 나오게 할수 있을까요?? 문론 한글 자판을 치듯 칠테고 한글로 잘 표시 되어 야 합니다..
ex) 'aksd' 입력시 표시는 '만ㅇ' 이렇게 보여야 겠지요..^^;;
에고 제가 컨퍼넌트들을 수정할수 있는 그런 실력이 되면 해 볼텐데..ㅠ.ㅠ
부탁드립니다..
그 컨트롤로 포커스가 갔을때 발생되는 이벤트에..
영문 키로 되어있으면
한글 키로 바꾸어 주면 되는거아닌가요..음..
예전에 올린 자료가 있는디..
어디보자..
아 찾았네요
이거 한번 보세요 ^^
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.
그럼 즐푸하세요옵. ^^