im_zorg, ты жешь нафига использовать переменную типа
shortstring имеет максимально доступную длину 255 символов. а так как ты в переменную пытался всунуть 500 существенно они не лезли...
Использовал бы вообще число (Integer)
procedure TForm1.Button1Click(Sender: TObject);
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile('map.bmp');
if (bmp.Width>1000) or (bmp.Height>1000) then MessageBox(0,'Bitmap is too big!', nil, MB_OK or MB_ICONEXCLAMATION);
AssignFile(f,'map.txt');
Rewrite(f);
for j:=0 to bmp.Height-1 do
begin
map:='';
for i:=0 to bmp.Width -1 do
begin
c:=bmp.Canvas.Pixels[i,j];
case c of
$000000: map:='0'; // черный
$0000FF: map:='1'; // красный
$00FF00: map:='2'; // зеленый
$00FFFF: map:='3'; // желтый
$FF0000: map:='4'; // синий
$FF00FF: map:='5'; // фиолетовый
$FFFF00: map:='6'; // бирюзовый
$FFFFFF: map:='7'; // белый
end;
WriteLn(f,map);
end;
end;
CloseFile(f);
halt;
end;
P.S. Дельфи у меня щас не установлена писал в блокноте но все должно работать.