不介意的话,可以用 TUpDown 和 Edit 搭配使用。
TUpDown.OnChanging 和 OnChangingEx 可以实现你的要求。
如果确实要用 TSpinEdit ,只有自己创建一个子类,写自己的 OnChanging 事件:
type
TOnChangingEvent = procedure (Sender: TObject; var AllowChange: Boolean) of object;
TMySpinEdit = class(TSpinEdit)
private
FOnChanging: TOnChangingEvent;
protected
procedure Change; override;
published
property OnChanging: TOnChangingEvent read FOnChanging write FOnChanging;
end;
procedure TMySpinEdit.Change;
var
AllowChange: Boolean;
begin
AllowChange := True;
if Assigned FOnChanging then FOnChanging(Self, AllowChange);
if not AllowChange then Exit;
inherited Changed;
if Assigned(FOnChange) then FOnChange(Self);
end;