こんにちは。
いつもお世話になっております。
開発環境は、win7(sp1)、delphiXE3 enterpriseです。
現在MaskEditを使って和暦入力を実現しようと考えています。
Editのときに使った、以下のコードで対応しようと考えました。
書き込んだイベントはKeyPressです。
strAccept:='mtsh';
if (Pos(Key,strAccept)=0) then Key:=#0;
EditMaskプロパティは「A99.99.99」にしています。
しかし、Editのときは数字入力の制限だったんですが、Editのときのように
動かなくて、アルファベットのA〜Zが先頭文字だけですが入力されてしまいます。
MskEditでKeyPressの制限はできないのでしょうか?
よろしくおねがいします。
MaskEdit1 の EditMask を ">!L99.99.99;1; " にして、
procedure TfrmMain.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Sender as TMaskEdit).SelStart = 0 then
if not CharInSet(UpCase(Key), ['M', 'T', 'S', 'H']) then
Key:=#0;
end;
これでどうでしょう?
> MaskEdit1 の EditMask を ">!L99.99.99;1; " にして、
元々の意味だと ">L99.99.99" ですかね。
> Editのときは数字入力の制限だったんですが
ちなみに TEdit で数値だけの入力に制限するのであれば、
NumbersOnly プロパティを True にするのが簡単です (Delphi 2009 以降) 。
[Delphi2007 と TEdit (ついでに TComboBox)]
http://ht-deko.minim.ne.jp/tech022.html
ごめんなさい。
本当に申し訳ございません。
Onkeypressの紐付けが違うものになっていました。
動かないのは当然でした。
本当にすみませんでした。
あと、教えていただいたコードで思う通りになりました。
ありがとうございました。
ツイート | ![]() |