| 183 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 184 | 
   | 
 const | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 185 | 
   | 
   PartMatch: array[0..8] of Byte = (0, 3, 6, 1, 4, 7, 2, 5, 8); | 
 
 
 
 
 
 
 
 
 
 
 
 | 186 | 
 < | 
   stretch_x: Integer = 50; | 
 
 
 
 
 
 
 
 
 
 | 186 | 
 > | 
   stretch_x: Integer = 1; | 
 
 
 
 
 
 
 
 
 
 
 
 | 187 | 
   | 
   stretch_y: Integer = 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 188 | 
   | 
 var | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 189 | 
   | 
   x, y: Word; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 227 | 
   | 
       row  := i mod 3; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 228 | 
   | 
       if (p2[i].X > 0) or (p2[i].Y > 0) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 229 | 
   | 
       begin | 
 
 
 
 
 
 
 
 
 
 
 
 | 230 | 
 < | 
         parts[part].x_txmp := p1[i].X - 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 231 | 
 < | 
         parts[part].y_txmp := p1[i].Y - 1; | 
 
 
 
 
 
 
 
 
 
 | 230 | 
 > | 
         parts[part].x_txmp := p1[i].X;// - 1; | 
 
 
 
 
 
 | 231 | 
 > | 
         parts[part].y_txmp := p1[i].Y;// - 1; | 
 
 
 
 
 
 
 
 
 
 
 
 | 232 | 
   | 
         parts[part].x_pspc := 0; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 233 | 
   | 
         if col > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 234 | 
   | 
           for x := 0 to col - 1 do | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 237 | 
   | 
         if row > 0 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 238 | 
   | 
           for y := 0 to row - 1 do | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 239 | 
   | 
             Inc(parts[part].y_pspc, rows[y]); | 
 
 
 
 
 
 
 
 
 
 
 
 | 240 | 
 < | 
         parts[part].w := p2[i].X - p1[i].X + 1; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 241 | 
 < | 
         parts[part].h := p2[i].Y - p1[i].Y + 1; | 
 
 
 
 
 
 
 
 
 
 | 240 | 
 > | 
         parts[part].w := Max(p2[i].X - p1[i].X, 1);// + 1; | 
 
 
 
 
 
 | 241 | 
 > | 
         parts[part].h := Max(p2[i].Y - p1[i].Y, 1);// + 1; | 
 
 
 
 
 
 
 
 
 
 
 
 | 242 | 
   | 
         parts[part].used := True; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 243 | 
   | 
         cols[col] := parts[part].w; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 244 | 
   | 
         rows[row] := parts[part].h; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 278 | 
   | 
     for row := 0 to 2 do | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 279 | 
   | 
     begin | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 280 | 
   | 
       part := row*3 + col; | 
 
 
 
 
 
 
 
 
 
 
 
 | 281 | 
 < | 
       if (row = 1) and (col = 1) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 282 | 
 < | 
         StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 283 | 
 < | 
             FImages[0], x, y, parts[part].w * stretch_x, parts[part].h * stretch_y, rfNearest) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 284 | 
 < | 
       else | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 285 | 
 < | 
       if (row = 1) then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 286 | 
 < | 
         StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 287 | 
 < | 
             FImages[0], x, y, parts[part].w, parts[part].h * stretch_y, rfNearest) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 288 | 
 < | 
       else | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 281 | 
 > | 
       if parts[part].used then | 
 
 
 
 
 
 | 282 | 
 > | 
       begin | 
 
 
 
 
 
 | 283 | 
 > | 
         if (row = 1) and (col = 1) then | 
 
 
 
 
 
 | 284 | 
 > | 
           StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 | 285 | 
 > | 
               FImages[0], x, y, parts[part].w * stretch_x, parts[part].h * stretch_y, rfNearest) | 
 
 
 
 
 
 | 286 | 
 > | 
         else | 
 
 
 
 
 
 | 287 | 
 > | 
         if (row = 1) then | 
 
 
 
 
 
 | 288 | 
 > | 
           StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 | 289 | 
 > | 
               FImages[0], x, y, parts[part].w, parts[part].h * stretch_y, rfNearest) | 
 
 
 
 
 
 | 290 | 
 > | 
         else | 
 
 
 
 
 
 | 291 | 
 > | 
         if (col = 1) then | 
 
 
 
 
 
 | 292 | 
 > | 
           StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 | 293 | 
 > | 
               FImages[0], x, y, parts[part].w * stretch_x, parts[part].h, rfNearest) | 
 
 
 
 
 
 | 294 | 
 > | 
         else | 
 
 
 
 
 
 | 295 | 
 > | 
           CopyRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 | 296 | 
 > | 
               FImages[0], x, y ); | 
 
 
 
 
 
 | 297 | 
 > | 
         if row = 1 then | 
 
 
 
 
 
 | 298 | 
 > | 
           y := y + parts[part].h * stretch_y | 
 
 
 
 
 
 | 299 | 
 > | 
         else | 
 
 
 
 
 
 | 300 | 
 > | 
           y := y + parts[part].h; | 
 
 
 
 
 
 | 301 | 
 > | 
       end; | 
 
 
 
 
 
 | 302 | 
 > | 
     end; | 
 
 
 
 
 
 | 303 | 
 > | 
     if cols[col] > 0 then | 
 
 
 
 
 
 | 304 | 
 > | 
     begin | 
 
 
 
 
 
 
 
 
 
 
 
 | 305 | 
   | 
       if (col = 1) then | 
 
 
 
 
 
 
 
 
 
 
 
 | 306 | 
 < | 
         StretchRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 291 | 
 < | 
             FImages[0], x, y, parts[part].w * stretch_x, parts[part].h, rfNearest) | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 292 | 
 < | 
       else | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 293 | 
 < | 
         CopyRect(parts[part].imgdata, 0, 0, parts[part].w, parts[part].h, | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 294 | 
 < | 
             FImages[0], x, y ); | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 295 | 
 < | 
       if row = 1 then | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 296 | 
 < | 
         y := y + parts[part].h * stretch_y | 
 
 
 
 
 
 
 
 
 
 | 306 | 
 > | 
         x := x + parts[part].w * stretch_x | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 307 | 
   | 
       else | 
 
 
 
 
 
 
 
 
 
 
 
 | 308 | 
 < | 
         y := y + parts[part].h; | 
 
 
 
 
 
 
 
 
 
 | 308 | 
 > | 
         x := x + parts[part].w; | 
 
 
 
 
 
 
 
 
 
 
 
 | 309 | 
   | 
     end; | 
 
 
 
 
 
 
 
 
 
 | 300 | 
 – | 
     if (part mod 3) = 1 then | 
 
 
 
 
 
 
 
 
 
 | 301 | 
 – | 
       x := x + parts[part].w * stretch_x | 
 
 
 
 
 
 
 
 
 
 | 302 | 
 – | 
     else | 
 
 
 
 
 
 
 
 
 
 | 303 | 
 – | 
       x := x + parts[part].w; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 310 | 
   | 
   end; | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 311 | 
   | 
  | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | 312 | 
   | 
   FreeImage(pspcimage); |