It's me again!
I thought everything's alright, the parts were created. At least the
first 10 ones. The second ten were of an undefined format, the third ten
were upside down and the last ten again undefined. What the heck am I
doing wrong now????
I tried two versions of code:
procedure TForm1.Button1Click(Sender: TObject);
const
hoehe = 100;
breite = 78;
var
Bitmap: TBitmap;
SourceRect, DestRect: TRect;
X: Integer;
begin
X := 0;
FOR X := 1 TO 10 DO
begin
SourceRect := Rect((X-1)*breite, 0, X*breite, hoehe);
DestRect := Rect(0, 0, breite, hoehe);
Bitmap := TBitmap.Create;
Bitmap.Width := breite;
Bitmap.Height := hoehe;
Bitmap.Canvas.CopyRect(DestRect,
Image1.Picture.Bitmap.Canvas, SourceRect);
Bitmap.SaveToFile(inttostr(X) + '.bmp');
Bitmap.Free;
end;
FOR X := 11 TO 20 DO
begin
SourceRect := Rect((X-11)*breite, 100, (X-10)*breite,
hoehe);
DestRect := Rect(0, 0, breite, hoehe);
Bitmap := TBitmap.Create;
Bitmap.Width := breite;
Bitmap.Height := hoehe;
Bitmap.Canvas.CopyRect(DestRect,
Image1.Picture.Bitmap.Canvas, SourceRect);
Bitmap.SaveToFile(inttostr(X) + '.bmp');
Bitmap.Free;
end;
FOR X := 21 TO 30 DO
begin
SourceRect := Rect((X-21)*breite, 200, (X-20)*breite,
hoehe);
DestRect := Rect(0, 0, breite, hoehe);
Bitmap := TBitmap.Create;
Bitmap.Width := breite;
Bitmap.Height := hoehe;
Bitmap.Canvas.CopyRect(DestRect,
Image1.Picture.Bitmap.Canvas, SourceRect);
Bitmap.SaveToFile(inttostr(X) + '.bmp');
Bitmap.Free;
end;
FOR X := 31 TO 40 DO
begin
SourceRect := Rect((X-31)*breite, 100, (X-30)*breite,
hoehe);
DestRect := Rect(0, 0, breite, hoehe);
Bitmap := TBitmap.Create;
Bitmap.Width := breite;
Bitmap.Height := hoehe;
Bitmap.Canvas.CopyRect(DestRect,
Image1.Picture.Bitmap.Canvas, SourceRect);
Bitmap.SaveToFile(inttostr(X) + '.bmp');
Bitmap.Free;
end;
end;
Version 2:
procedure TForm1.Button1Click(Sender: TObject);
const
hoehe = 100;
breite = 78;
var
Bitmap, Bitmap2, Bitmap3, Bitmap4: TBitmap;
SourceRect, DestRect, SourceRect2, DestRect2,
SourceRect3, DestRect3, SourceRect4, DestRect4: TRect;
X: Integer;
begin
X := 0;
FOR X := 1 TO 10 DO
begin
SourceRect := Rect((X-1)*breite, 0, X*breite, hoehe);
DestRect := Rect(0, 0, breite, hoehe);
Bitmap := TBitmap.Create;
Bitmap.Width := breite;
Bitmap.Height := hoehe;
Bitmap.Canvas.CopyRect(DestRect,
Image1.Picture.Bitmap.Canvas, SourceRect);
Bitmap.SaveToFile(inttostr(X) + '.bmp');
Bitmap.Free;
end;
FOR X := 11 TO 20 DO
begin
SourceRect2 := Rect((X-11)*breite, 100, (X-10)*breite,
hoehe);
DestRect2 := Rect(0, 0, breite, hoehe);
Bitmap2 := TBitmap.Create;
Bitmap2.Width := breite;
Bitmap2.Height := hoehe;
Bitmap2.Canvas.CopyRect(DestRect2,
Image1.Picture.Bitmap.Canvas, SourceRect2);
Bitmap2.SaveToFile(inttostr(X) + '.bmp');
Bitmap2.Free;
end;
FOR X := 21 TO 30 DO
begin
SourceRect3 := Rect((X-21)*breite, 200, (X-20)*breite,
hoehe);
DestRect3 := Rect(0, 0, breite, hoehe);
Bitmap3 := TBitmap.Create;
Bitmap3.Width := breite;
Bitmap3.Height := hoehe;
Bitmap3.Canvas.CopyRect(DestRect3,
Image1.Picture.Bitmap.Canvas, SourceRect3);
Bitmap3.SaveToFile(inttostr(X) + '.bmp');
Bitmap3.Free;
end;
FOR X := 31 TO 40 DO
begin
SourceRect4 := Rect((X-31)*breite, 100, (X-30)*breite,
hoehe);
DestRect4 := Rect(0, 0, breite, hoehe);
Bitmap4 := TBitmap.Create;
Bitmap4.Width := breite;
Bitmap4.Height := hoehe;
Bitmap4.Canvas.CopyRect(DestRect4,
Image1.Picture.Bitmap.Canvas, SourceRect4);
Bitmap4.SaveToFile(inttostr(X) + '.bmp');
Bitmap4.Free;
end;
end;
It must have something to do with the TRects, because the Bitmaps are
created correctly, but saved incorrectly.
Any suggestions?
Christian