4 日付の処理で「/」を自動で入れたい。簡単に。(原始的に作っています。)

 


西暦を入れたら自動的にスラッシュ( / )を入れたい人っていますよね 。

それも簡単に、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;

back