Autor Beitrag
Martello
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 131

WIN 2000
TP, C, Delphi 1.0, Turbo Delphi 2006, Delphi 7
BeitragVerfasst: Mo 23.03.09 20:09 
Hallo,

ich habe einen vertikalen Kursor(Linie) per Mausklick in einer Paintbox erzeugt.
Wie kann ich diese Linie mit der Maus horizontal verschieben?

Mo.
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Do 21.05.09 20:26 
Du kannst ja ohne weiteres mit der Abfrage
ausblenden 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!):
ausblenden 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 user profile iconNarses: 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:
ausblenden Delphi-Quelltext
1:
horizontal:=xUp-xDown;