Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
Aphton hat in Post #9 eine Formel aufgestellt. Die hatte ich nicht getestet, weil mit dem vorhandenen Code ohne viel denken die "Praktiker-Lösung" schnell machbar war.
Evtl. die mal genauer anschauen und testen...
Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
Die meiste Arbeit hattest Du ja schon erledigt...
Den Umweg über die Rect1-3 kannst Du auch sparen und aus den 3 Punkten (p2) direkt RectTotal berechnen. Ich wollte halt nur erst mal sehen, ob es auf den ersten Blick passt.
Ja, die Werte sind falsch, aber das ist völlig irrelevant. Die zeigen nicht die Werte der Lösung (umgebendes Quadrat). Deshalb ist die Anzeige/Codezeile irrelevant,...
Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
ts.cx und ts.cy sind nicht die Koordinaten des roten Rechteckes, das ich zeichne!
Somit sind die Werte nicht an das neu ermittelte Rechteck angepasst. Die neuen Werte für TextLänge/Höhe liegen in RectTotal.
Soll der TS entscheiden, ob die Lösung wie gesucht aussieht. Er sucht ja nicht die Textlänge, sondern das umgebende Rechteck bei jedem Winkel!
Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
Die Werte des Labels werden ja nicht angepasst, hat also mit der Lösung wenig zu tun.
Die Fläche des umgebenden Rechtecks ist eine Obermenge der Teilrechtecke, das stimmt auf jeden Fall. Ich hab' mich einfach am bestehenden Code orientiert. Man kann das sicher auch direkter berechnen, evtl. Aphton's Weg.
Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
Deine Antwort bezieht sich nicht auf meinen Post?
Bei mir funktioniert es:
procedure TForm1.FormPaint(Sender: TObject);
const
txt = '012346789 - Hello@World!';
var
Rect1, Rect2, Rect3, RectTotal : TRect;
fh,fw: integer;
p1, p2: TPoint;
Forum: Programmieren allgemein
by Satty67,
27. Okt 2010
Du drehst den Text (oder das den Text umgebende Rechteck) an der linken/oberen Ecke um den Kreismittelpunkt.
Damit hast Du 3 Radien, ausgehen vom Text in 0° Position:
1) Top/Left -> Bottom/Left
2) Top/Left -> Top/Right
3) Top/Left -> Bottom/Right (die Diagonale durch den Text)
Alle drei Radien stellen die Diagonale eines umgebenden Rechteckes dar, die sich leicht über den Winkel (der...