Hallo nochmal,
stellt euch einfach ein Blatt Papier vor, auf das so ziemlich genau in die Mitte ein Bild hin kommen soll. Ich lege also irgendwas als Beispiel auf das Blatt Papier und schiebe es so lange hin und her, bis es optisch passt. Dann nehme ich ein Lineal und lese die cm und mm ab... Sowas geht ja nicht am PC.
Damit ich meine Koordinaten für z.B. ein Canvas.Rectangular(x1, y1, x2, y2) bekomme,
hatte ich im Designer auf ein TForm, ein TShape auf die (für mich) passende Stelle gelegt und im Objektinspektor die Positionsdaten gelesen.
Diese hatte ich dann als Grundlage für die Position meines Canvas Objektes genommen. Das Shape wird nur für die Position genommen und kommt sofort wieder weg!
Nur lag dieses Canvas Objekt
an einer ganz anderen Stelle als das Shape!
Mir geht es nur um die Frage, warum die Position beim Canvas Objekt ganz wo anders ist. Die Koordinaten passen nicht. In ein und derselben TForm!
Der Code im angehängten Bild ist etwa so:
Canvas.Brush.Color := clYellow;
Canvas.Brush.Style := bsSolid;
// Set the border color
Canvas.Pen.Color := clBlue;
Canvas.Pen.Width := 3;
Canvas.Pen.Style := psSolid;
x1 := 369; y1 := 170; x2 := 630; y2 := 431; // x2 := left + width, y2 := top + height (shape vom Objektinspektor)
R := Rect(x1, y1, x2, y2);
Canvas.Rectangle(R);
// 2 Linien durchkreuzen das Rechteck/Quadrat
Canvas.MoveTo(x1, y1);
Canvas.LineTo(x2, y2);
Canvas.MoveTo(x1, y2);
Canvas.LineTo(x2, y1);
Im Anhang simd zwei Screenshots: der erste zeigt, wie es wird, wenn ich die Koordinaten vom Platzhalter "Shape" nehme.
Im zweiten, wenn ich es selber herausfinde, und mich mühsam annähere. Genauso sollte es ja nicht sein!
Nix RAD. Das ist wie KC Basic vor 35 Jahren.