Object procedures are defined in the class like mentioned.

so Not this:
[pascal]procedure SecondOverride;
begin
Color := rgb(200,200,200);
end;[/pascal]

but this works:
[pascal]type
TMySprite = class(TSpr)
public
procedure SecondOverride; // It's defined within class, not in unit functions
end;

procedure TMySprite.SecondOverride;
begin
Color := rgb(200,200,200);
end;
...
spr := TMySprite.Create(engine);
with spr do
begin
onDraw := SecondOverride;
end;
[/pascal]