System: Ubuntu 9.04
Compiler/IDE: FPC/Lazarus 9.26-4
Libraries/API: None

Basically, in unit2 I have this object:
Code:
Sprite = Object
     public
        x,y,xspeed,yspeed,gravity,lastx,lasty,collision: integer;
        solid: boolean;
        img: TBitmap;
        procedure Create();
        procedure Destroy();
        procedure Collide(); // Empty by default. I want to override it.
  end;
That has the empty procedure "Collide". Now, my unit1 uses unit2 and I create a sprite object like so:
Code:
Player: Sprite;
Player := Sprite.Create;
Player.Collide := PlayerCollide; // Yells at me here
Where PlayerCollide is a procedure in unit1
Code:
procedure TForm1.PlayerCollide();
begin
   Player.y := 32;
end;
It's a bit messy, and I've never done any overrides before, much less of my own procedures..

[Random]
Quite ambitious for me, and quite poorly coded, but I'm working on a simple 2d, software-rendered game engine. The idea behind what was mentioned above is so the person making their game could override the collision code to handle them how they want: Ex: Delete objects, Teleport places ETC.