Also irgendwie weiß ich überhaupt nicht was du vor hast, vielleicht verrätst du uns das mal.
Ich dachte, du hast ein Bitmap und willst davon die Ränder abschneiden (wie das geht, hab ich im Beitrag oben schon geschrieben), aber was du hier plötzlich mit Screen.Desktop willst?!?
Wenn du einfach nur Canvas schreibst als Quelle, dann ist das deine Form, also willst du die Form in ein Bitmap kopieren und da was abschneiden?
Aber was willst du dann mit Screen.DesktopRect? Ist deine Form über den ganzen Desktop?
Tut mir leid, aber genaue Fragestellung würde hier eher weiter helfen.
Von was genau willst du denn was abschneiden?
Übrigens um zur ursprünglichen Frage zurück zu kehren, also dass du ein Bitmap hast und davon VLeft, VTop, VRight und VBottom abschneiden willst, das geht so:
Delphi-Quellcode:
var NewWidth, NewHeight: Integer;
{...}
NewWidth := Bitmap.Width - VLeft - VRight;
NewHeight := Bitmap.Height - VTop - VBottom;
Bitmap.Canvas.CopyRect(Rect(0, 0, NewWidth, NewHeight), Bitmap.Canvas, Rect(VLeft, VTop, Bitmap.Width-VRight, Bitmap.Height-VBottom));
Bitmap.Width := NewWidth;
Bitmap.Height := NewHeight;
Hättest du dir meinen Beitrag weiter oben durchgelesen, wärst du schnell auch auf diesen Code gekommen.
Das sollte eigentlich die Lösung zur ursprünglichen Problemstellung sein, den Code den du gepostet hast, würde ich eher interpretieren als "Desktop kopieren und davon was abschneiden"...