在AHMSpinEdit(或其它SpinEdit)中,在OnChange事件中我需要判断一个条件决定Value改变是否改变,可事实是条件未判断之前,Value已

  • 主题发起人 主题发起人 amiaos
  • 开始时间 开始时间
A

amiaos

Unregistered / Unconfirmed
GUEST, unregistred user!
在AHMSpinEdit(或其它SpinEdit)中,在OnChange事件中我需要判断一个条件决定Value改变是否改变,可事实是条件未判断之前,Value已经发生改变,如何在Value改变之前加入判断,决定Value是否改变呢?(100分)<br />
 
我不是很明白你的意思,onchange本来就是改变后触发的,你要做成什么效果呢?
要是加入判断,在判断是否时可以把填入的东东改回来不就行了!
 
to 笨笨 :
我的意思其实是:在OnChange之前判断是否触发该事件,Value是否改变,
可控件没有这样的事件,你所说的将原有的数值写回,可还是触发了OnChange事件。
 
不介意的话,可以用 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;
 
amiaos:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
这个题我看来看去都搞不懂, 那个VALUE是否要CHANGE
怎么来说都是在外面的某一个地方以某一种姿势干的,干吗非要跑到它的ONCHANGE里面去干.
 
多人接受答案了。
 
后退
顶部