我想做一个通用功能,可以应用于许多不同的组件。但是,我不能只是做
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吗?
最佳答案
解决方案是使用:
sender as TControl
关于delphi - Delphi TObject位置更改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24144566/