Hi, ich versuche eine Komponente im Raster zu bewegen, zwar habe ich vorher
nach dem OnMouseUp eintritt mit
Delphi-Quelltext
1:
| Left := Left - (Left mod Raster); |
gemacht!
Aber wie man in den Anwendungen bzw. IDE's sieht wird ja sofort nach Raster bewegt!
also wollte ich das sofort mit reinrechen und habe es so gemacht!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure OnMouseDown( .. X, Y : Integer); begin DownX := X; DownY := Y; end;
procedure OnMouseMove(.. X, Y : Integer); begin X := X - (X mod Raster); Y := Y - (Y mod Raster); Left := X - DownX + Left; Top := Y - DownY + Top; end; |
aber hier hüpft die Komponente wie ein Kälbchen hin und her!
Da habe ich gedacht ich müßte auch DownX und DownY raster berechen
und habe das so gemacht:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure OnMouseDown( .. X, Y : Integer); begin DownX := X; DownY := Y; end;
procedure OnMouseMove(.. X, Y : Integer); begin X := X - (X mod Raster); DownX := DownX - (DownX mod Raster); Y := Y - (Y mod Raster); DownY := DownY - (DownY mod Raster);
Left := X - DownX + Left; Top := Y - DownY + Top; end; |
Das klappt schon aber die Komponenten lassen sich nicht Linksbündig alle an einer Linie ausrichten!
Wie mache ich das richtig mit dem Raster?
Ich habe auch versucht DownX und DownY in entgegengesetzte richtung das Raster einzurechnen aber das müßte ich bestimmt
nur wenn sich X nach rasterberechnung ändert weil sonst ist mir die Komponente in den minus Bereich geflogen weil ich DownX
und DownY diese Rest immer hinzuaddiert habe der sich aus X mod Raster ergab!