掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
StringGridにてセル入力確定直後に、入力チェック・データ修正するには?? (ID:5455)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
※前回質問させて頂いたときに「〜について」という表記をしてしまいました。 以後気をつけます。 度々申し訳ありません。 今度はStringGridを使って、セルの入力確定直後に (確定直後というのはセルにデータを入力して、Enterで確定した時のことです) 入力チェックを行って、ある特定のデータ形式に修正するということを行いたく 試行錯誤しているのですが、どうもうまくいきません。 詳細な内容はというと セルに金額の数字「98000」と入力して確定する。「セルには\98,000」と表示 される。 という感じです。 OnSetEditTextイベントを利用してやってみたのですが、確定前の1文字入力す る度にイベントが発生してしまい、1文字入力するたびに全体が選択されてしまい 続けて入力しようとすると、1文字入力後にカーソルキーで選択を解除してやらな ければならず、非常に扱いにくいような感じです。 なんとか、Enterキーで確定した時だけに処理を行わせることはできないもので しょうか... OnSelect と OnExitイベントで処理を行わせてもいいのですが、 なんとかできるなら、入力確定直後に修正したいのです。 どうかお知恵をお貸し下さい。 宜しくお願い致します。 function CutStr(strCutStr : String):String; var i : integer; tmpS : string; tmpC : Char; begin // 文字列から数値以外の文字を取り除きます。 for i := 1 to Length(WideString(strCutStr)) do begin tmpS := Copy(strCutStr,i,1); tmpC := tmpS[1]; if tmpC in ['0'..'9'] Then Result := Result + tmpC; end; end; procedure TForm5.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin with StringGrid1 do begin // 文字列がなんもなしじゃ無い場合だけ処理します。 if CutStr(Value) <> EmptyStr Then begin // 金銭表示に修正します。 Cells[ACol,ARow] := FloatToStrF(StrToFloat(CutStr(Value)), ffCurrency, 15, 0); end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.