2

Delphi 2006 で devexpress を使用しています。

cxGrid があります。数値列の値の入力を 0 から 999 までの整数に制限したいと考えています。プロパティ タイプを SpinEdit に設定すると、初期値は常に 0 になり、望ましくありません。

そこで、列のプロパティ値を null のままにして、列のデータバインディングのデータ型を Smallint に設定しました。これは、「e」と「.」を除いて、ほとんどの場合機能します。'+' と '-' は引き続き列に入力できるため、例外が発生します。

「e」と「.」を除外する簡単な方法はありますか および '+' と '-' が列に入力されていませんか?

4

1 に答える 1

0

初期値 0 はUseNullString、true に設定することで防ぐことができます。

不要な文字の入力は、

procedure TForm1.ViewEditKeyPress(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
  AEdit: TcxCustomEdit; var Key: Char);
begin
   if AItem = TheColumnWithSpinEdit then
     if (not (Key in ['0'..'9',#8])) then Key := #0;
end;
于 2013-05-15T16:45:28.697 に答える