全角を半角に変換する

LCMapString APIを使います。すでに半角のものは半角のままです。また、半角にできない文字、たとえばひらがななどは変換されません。
以下の例は Edit2 の内容を半角に変換し、Edit1 に結果を表示します。

■全角を半角に変換する例
procedure TForm1.Button3Click(Sender: TObject);  
var
  Chr : array [0..255]  of  char;
begin
  Windows.LCMapString(
     GetUserDefaultLCID(),
     LCMAP_HALFWIDTH,
     PChar(Edit2.Text),        //変換する文字列
     Length(Edit2.Text) + 1,   //サイズ
     chr,                      //変換結果
     Sizeof(chr)               //サイズ
     );
  Edit1.Text :=  Chr;
end;