Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TLine - Canvas an Line ausrichten

  Alt 6. Mär 2013, 20:41
Das Problem ist aber ein anderes. Ich mu0 hier genau zeichen. Ich will ja eine Line von z.B. P1 nach P2 haben und nicht von P1 + Offset nach P2 - Offset?
Wenn die Linien dicker werden, dann geht das aber nicht so einfach.
Das Rechteck, dass von der Komponente mit Top, Left, Height und Width aufgespannt wird, darf auf keinen Fall überschritten werden. (das blaue Rechteck)
Die beiden Endpunkte einer Linie spannen ebenfalls ein Rechteck auf. (das rote Rechteck)
Dieses Rechteck muss bei diagonalen Linien jeweils um die halbe Linienbreite kleiner sein als das umgebende Rechteck der Komponente.
Du könntest der Komponente eine Methode spendieren, die das Rechteck der Komponente entsprechend vergrössert:
Delphi-Quellcode:
procedure TLine.InflateBoundingRect;
var
  lw2 : integer;
begin
   lw2 := LineWidth div 2;

   // TODO: Fallunterscheidung bzgl. TLineAline bzw.TLineStyle
   SetBounds(Left-lw2, Top-lw2, Width+lw2, Height+lw2);
end;

Geändert von sx2008 ( 6. Mär 2013 um 20:44 Uhr)
  Mit Zitat antworten Zitat