掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
del5pro:editコントロールでひらがな以外の入力を禁止させる (ID:33969)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi7でテストしただけなので、もしかしたらDelphi5ではうまく動かないかも。 usesにimmを追加。 Form1に、 OldWindowProc : TWndMethod; procedure NewWindowProc(var Message: TMessage); を追加。 procedure TForm1.FormCreate(Sender: TObject); begin OldWindowProc := Edit1.WindowProc; Edit1.WindowProc := NewWindowProc; end; procedure TForm1.NewWindowProc(var Message: TMessage); var CC: Word; begin if (Message.Msg = WM_IME_CHAR) then begin //IMEからの文字だったら処理 CC := TWMKey(Message).CharCode; if (CC >= $829F) and (CC <= $82F1) then begin //「ぁ」から「ん」だったら処理 OldWindowProc(Message); end; Message.Result := 0; end else if(Message.Msg = WM_CHAR) then begin //WM_IME_CHARは2つのWM_CHARに分けられて飛んでくる CC := TWMKey(Message).CharCode; if (CC >= $20) and (CC <= $7e) and (Message.LParam and $FF0000 <> 0) then begin //キーボードから入力可能な文字で、かつ、キーボードから入力されたなら処理しない end else begin OldWindowProc(Message); end; Message.Result := 0; end else begin OldWindowProc(Message); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.