Ja Stahli, das ist für hier wirklich sehr sehr viel einfacher. Dann wird zur Designzeit auch gleich alles richtig angezeigt.
Das einzige was ich jetzt noch hab ist: Width und Height sind ja vom UrUrVorfahren. Wie kriegt denn meine Komponete mit, daß die sich geändert haben. Ich muß ja dann X1/Y1 und X2/Y2 entsprechend anpassen?
Delphi-Quellcode:
procedure TLine.SetX1(const Value: integer);
begin
FX1 := Value;
Left := FX1 - OffSet;
end;
procedure TLine.SetX2(const Value: integer);
begin
FX2 := Value;
Width := FX2 - FX1 + OffSet + OffSet;
end;
procedure TLine.SetY1(const Value: integer);
begin
FY1 := Value;
Top := FY1 - OffSet;
end;
procedure TLine.SetY2(const Value: integer);
begin
FY2 := Value;
Height := FY2 - FY1 + OffSet + OffSet;
end;
function TLine.OffSet: integer;
begin
Result := FPen.Width div 2;
end;