掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridの小数入力制限 (ID:3518)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「かごッパ」 小数1桁までの数字制限なら、これでいけるッパでしょ。 procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char); var K, vp : Integer; ipEdit : TInplaceEdit; begin K := ord(Key); if K = $08 then exit; if not(K in [$2E, $30..$39]) then begin Key := #0; exit; end; ipEdit := FindControl(GetWindow(StringGrid1.Handle, GW_CHILD)) as TInplaceEdit; if Assigned(ipEdit) then begin vp := Pos('.', ipEdit.Text); if (vp > 0)and(vp < Length(ipEdit.Text)) then Key := #0; end; end; 「つじッパ」 おぉ〜ナルホド…これでイッケンラクチャクでケロ…ではメシ… 「かごッパ」 けど…チョット問題が残ってるッパよ。 「つじッパ」 ン?まだでケロ… 「らぶッパ」 そっか、これだと小数点がある文字列の途中が編集できないっパ。 「みかッパ」 もし入力間違えしたら、お尻から消してやり直せばいいッパじゃん。 「つじッパ」 そうでケロ…これでやっとメシ… 「らぶッパ」 でも〜やっぱり、それじゃ少し面倒ッパね。 「かごッパ」 うーん、やり方変えなくちゃダメッパか〜 「つじッパ」 ン…ならお先に…でケロ… 「らぶッパ」 変更前じゃなくて〜、このように変更後にチェックした方がいいッパかも。 var SavedCell : string; procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String); begin SavedCell := Value; end; procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); var vp : Integer; begin vp := Pos('.', Value); if (vp > 0)and(vp < Length(Value)-1) then begin StringGrid1.Cells[ACol, ARow] := SavedCell; StringGrid1.EditorMode := True; end else begin SavedCell := Value; end; end; 「かごッパ」 これに数字キーチェックを追加したらOKッパかな。 「みかッパ」 この続きは後にして、そろそろ食事にするッパ。 「らぶッパ」 あれっ?、キュウリが全部なくなってるッパです〜 「みかッパ」 コラッ、つじッパ! 「つじッパ」 …Zzz…もうコレ以上食えないでケロ…Zzzz…
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.