环形镜的自动收集是对烟雾正确点击的反应。 同一点还击了OnMouseUp
活动。 武革阵的研制者可以选择在登峰之前或之后发射“OnMouseUp”事件。 很显然,后者实际上就是,当人口关闭时,即会发生这种事件(无论是通过摩擦还是由诸如Esc等关键板发射)。
活动没有翻一番,当你敦促左顿关闭人口时,你又通过释放左顿再次开枪。
有几种选择。 一种做法是产生新的类别,超越<代码>MouseDown方法,以发射你自己的活动。 例如:
type
TMyStringGrid = class(TStringGrid)
private
FOnRButtonUp: TMouseEvent;
protected
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
published
property OnRButtonUp: TMouseEvent read FOnRButtonUp write FOnRButtonUp;
end;
[...]
procedure TStringGrid.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Integer);
begin
if (Button = mbRight) and Assigned(FOnRButtonUp) then
FOnRButtonUp(Self, Button, Shift, X, Y);
inherited;
end;
www.un.org/Depts/DGACM/index_french.htm 这样做的方法要么是按上列,要么取代电网的<条码>。 here>。
另一种选择是,单单单靠 mo,在登革热的<密码>上处理。 这一事件是在人群出现之前发射的。 您可使用<代码>Mouse.CursorPos。
Still, 另一种选择是,在>上,以及在<关于Mouse的活动(或者在<关于ContextMenu/code>的<编码>上做得更好)中,首先进行一些处理,然后显示人口。 例如:
procedure TForm1.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Pt: TPoint;
begin
// Do processing
if Button = mbRight then begin
Pt := (Sender as TStringGrid).ClientToScreen(Point(X, Y));
PopupMenu1.Popup(Pt.X, Pt.Y);
end;
end;