It's just:

[pascal]
TTextureTile = record
u1, v1, u2, v2: Single;
end;

TSpriteTile = record
x, y, width, height: Integer;
end;

function SpriteTileToTextureTile(ST: TSpriteTile; fTexWidth, fTexHeight: Integer): TTextureTile;
begin
Result.u1 := ST.x / fTexWidth;
Result.v1 := ST.y / fTexHeight;
Result.u2 := (ST.x + ST.width) / fTexWidth;
Result.v2 := (ST.y + ST.height) / fTexHeight;
end;
[/pascal]

Then just pass the data in TTextureTile to openGL and you're done.

[pascal]
var TT: TTextureTile;

....

glTexCoord2f( TT.u1, TT.v1 );
glVertex3f( 0, 0, 0.0 );

glTexCoord2f( TT.u2, TT.v1 );
glVertex3f( 512, 0, 0 );

glTexCoord2f( TT.u2, TT.v2 );
glVertex3f( 512, 512, 0 );

glTexCoord2f( TT.u1, TT.v2 );
glVertex3f( 0, 512, 0 );
[/pascal]

Hope this helps.