0

FireMonkeyとTListBox内のいくつかの項目を使用して...

アイテムの変更を許可/キャンセルできるようにしたい...

TListView のイベントでできるように: OnChanging

イベント OnMouseDown & OnKeyDown は、変更の前にトリガーされます (アイテムの値は、新しい選択ではなく、現在/古い選択アイテムに対するものです)...

だから私は現在のListBox ItemIndexを保存したイージーを保存することができます...そして変更後、それに戻ります..しかし、これはただひどい、汚いです...

とにかく上手に作るには?

4

1 に答える 1

0

SetItemIndexメソッドをオーバーライドして、機能を追加するカスタムコンポーネントを作成するのがおそらく最善です。

type TCustomListBox = class(TListBox)
  protected
    procedure SetItemIndex(Value: Integer);override;
  end;

procedure Register;

..。

procedure Register;
begin
  RegisterControls('Custom', [TCustomListBox]);
end;

procedure TCustomListBox.SetItemIndex(Value: Integer); 
begin
  if <condition> then
inherited
end;

initialization
  RegisterFMXClasses([TCustomListBox]);
end;

もちろん、条件付きのイベントを追加することもできます。

于 2012-11-12T07:34:12.007 に答える