我想制作一个可以应用于众多不同组件的通用功能;但是,我不能只做
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?
答案 0 :(得分:0)
解决方案是使用:
sender as TControl