我想创建一个可以应用于许多不同组件的通用函数;但是,我不能简单地这样做
TObject.Position它要求我这样做
TButton(TObject).Position这意味着我将不得不做
if TObject is TButton then
TButton(TObject).position...
if TObject is TLabel then
TLabel(TObject).position...有没有办法让它像这样工作:
TObject.position这样函数就可以尽可能通用,而不会被switch/if语句弄得乱七八糟……?
这就是我所拥有的:
procedure TForm3.gestureObj(Sender: TObject;
const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
if EventInfo.GestureID = igiPan then
handlePan(EventInfo, Sender);
end;
procedure TForm3.handlePan(EventInfo: TGestureEventInfo; sender: TObject);
var
item: TControl;
begin
item:= TControl(TObject);
end;这样做会给我一个访问冲突,当我尝试移动do item.position时,我怀疑这是因为它没有TControl?
发布于 2014-06-10 23:52:51
解决方案是使用:
sender as TControlhttps://stackoverflow.com/questions/24144566
复制相似问题