This is incorrect:
[pascal]
type t1=object
a,b:word;
end;
[/pascal]

... is binary equivalent to:

[pascal]
type t1=record
a,b:word;
end;
[/pascal]

Only when you add a virtual method, a VMT is added to the object.

I don't understand your reply about changing methods. How can you change a method in a running program?