Du kannst ja ohne weiteres mit der Abfrage
Delphi-Quelltext
1:
| if Color(Image1.Picture.Bitmap.Canvas.Pixels[x,y])=clBlack then |
abfragen, ob das gerade angesprochene Pixel schwarz ist.
Dazu müsstest Du jetzt nur noch rausfinden, von wo (bei onMouseDown merken) nach wo (bei MouseUp merken) Du dieses verschieben möchtest.
Dann kannst Du doch natürlich das ganze dann so machen (nur Karrikatur, um es Dir klar zu machen!):
Delphi-Quelltext
1: 2:
| horizontal:=xUp-xDown; vertikal:=yUp-yDown; |
Und dann kannst Du doch einfach nur Dein ganzes Picture pixelweise durchwandern und alle Pixel in einem neuen Picture entsprechend setzen.
So müsste das funktionieren.
Mir fällt sonst leider keine andere (wahrscheinlich auch wesentlich bessere) Möglickeit ein...
---
Moderiert von
Narses: Beiträge zusammengefasst---
Ach nein, Du möchtest das ganze ja nur horizontal (also nur in einer Richtung) verschieben!
Also müsste ja dann dieses reichen:
Delphi-Quelltext
1:
| horizontal:=xUp-xDown; |