کد به نظر درسته. ولی تست نکردم. به نظرم میاد تمام بیت مپ پشت سر هم در حافظه وجود داره، الان حضور ذهن ندارم.
X := Integer(Pointer); // thas it