西暦を入れたら自動的にスラッシュ( / )を入れたい人っていますよね
。
それも簡単に、OnKeyPressにコピペしたらすぐに使えるという内容。 参考までにどうぞ。
動作の保証は出来ません。 あくまで自己責任でどうぞ。解説コメントいれてます。
procedure TFsyunyu.Edit2KeyPress(Sender: TObject; var Key: Char);
var
lcnt1:integer;
lcma1:string;
ans1 :string;
back_log1:integer;
down_cnt1:integer;
NUM:string;
begin
NUM := '0123456789';
if (Pos(Key,NUM)=0) and (Ord(Key) <> VK_BACK) then
Key := #0000
else begin
//初期値
lcnt1 := Length(Edit2.Text);
lcma1 := '/';
ans1 := Edit2.Text;
back_log1 := 1;//カウントダウン用変数
if (Ord(Key) = VK_BACK) then begin//BackSpaceキーが押されたら処理開始
down_cnt1 := Length(Edit2.Text);
back_log1 := 2;
end;
//カウントアップ処理
if back_log1 = 1 then begin
if (lcnt1 = 4)or(lcnt1 = 7) then begin
if lcnt1 = 4 then begin
Insert(lcma1,ans1, 6);//6バイト目に入力
Edit2.Text := ans1;
end;
if lcnt1 = 7 then begin
delete(ans1,5,1); //文字列の5バイト目から1バイト消す。
Insert(lcma1,ans1, 5);//5バイト目に入力
Insert(lcma1,ans1, 8);//8バイト目に入力
Edit2.Text := ans1;
end;
end;
end;
SendMessage(Edit2.Handle, WM_KeyDown, VK_End, 0); //常にキャレットを右に置く処理
end;
end;
|