![]() |
FMX-TLine nach rechts-oben
Bin ich wirklich so blöd, oder wie um Himmels Willen kann man dem Ding sagen, daß man die Linie von unten-links nach oben-rechts haben will?
XE7 kennt bei TLine.LineType nur Top [¯], Left [|] und Diagonal [\]. Wobei ich hier Bottom, Right und die beiden Zentrierten hier auch fast vermissen würde. Und ja, man könnte an der Rotation rumspielen, aber das ist doch voll grauenhaft auszurichten und wenn, dann könnte man auf den LineType auch gleich ganz verzichten. :roll: PS: Warum kann man in diesem Unterforum als Präfix die Sprachen auswählen, wo doch Frameworks (VCL, FMX usw.) das Wichtigere wären? |
AW: FMX-TLine nach rechts-oben
Zitat:
Eine vertikale Zentrierung kannst Du erreichen, wenn Du bei einem quadratischen Objekt Rotationangle = 135 setzt, eine horizontale Zentrierung mit RotationAngle = 45; Ist in der Tat etwas umständlich, geht aber. Zitat:
|
AW: FMX-TLine nach rechts-oben
Liste der Anhänge anzeigen (Anzahl: 1)
Der Witz ist, daß eine 90° Drehung um ein Pixel verschoben ist ... die Ausrichtungspünktchen im Formdesigner sind um ein Pixel schräg verschoben ... 89° sehen aber wie die gewollten 90° aus. :roll:
Hatte mir schon fast überlegt ein Image auf die Form zu legen, mit dem gewünschten Bild. :lol: Wobei es ja eigentlich eher Pfeile sein sollten, so von den linken Buttons zu den Rechten und nach unten. Hätte beinah das TestProgramm mit hochgeladen, aber dann sah ich, daß aus einer 3 MB-VCL-Anwendung 39 MB als FMX wurden (beides mit Debuginfos) :shock: Und selbst als Zip isses zu groß für die DP. |
AW: FMX-TLine nach rechts-oben
Liste der Anhänge anzeigen (Anzahl: 1)
Bei dem von Dir geschilderten Szenario würde es sich vielleicht eher anbieten, mit TPath (also der SVG-Vector-Komponente) zu arbeiten. Da kannst Du dann auch ein paar Pfeilspitzen reinbauen. Und die Sache mit dem Ausrichten ist auch einfacher.
Anliegender Screenshot zeigt mal (grob) die Daten für so einen Pfeil von links unten nach rechts oben ("M" steht für "Move", "L" für LineTo, aber das weißt Du sicher ja schon). Im Prinzip würde da auch schon eine TPath-Komponente reichen, wo Du die ganzen Pfeile dann reinzeichnest und diese Komponente hinter die anderen legst. |
AW: FMX-TLine nach rechts-oben
Liste der Anhänge anzeigen (Anzahl: 1)
TPath?
Mal ganz im Ernst ... Das war jetzt wirklich die beste Idee? :thumb: (von dir und für deren Namenswahl) Es mach richtig Spaß damit zu arbeiten, vorallem wenn man die IOUtils ( ![]()
Delphi-Quellcode:
Path1: TPath;
Zitat:
Code:
Fehlen dann nur noch die Pfeile.
M0,0 M173,101 // da ich nicht bis zum Rand male ... einfacher für die Positionieung :)
M1,11 L45,44 M1,51 L45,51 M1,90 L45,58 M173,11 L128,44 M173,51 L128,51 M173,90 L128,58 M87,63 L87,94 Trotz meines guten Paint-Könnens sieht es doch schonmal nicht so schlimm aus. :D |
AW: FMX-TLine nach rechts-oben
Zitat:
Momentan muss man, je nachdem, ob IOUtils vor oder nach FMX.Objects in der Uses-Liste steht entweder den Record TPath oder das Object TPath qualifizieren (also z.B. "IOUtils.TPath.GethomeDir" bzw. "Path1 : FMX.Objects.TPath").:cry: |
AW: FMX-TLine nach rechts-oben
Zitat:
Mavarik |
AW: FMX-TLine nach rechts-oben
Wenn man sowieso per "Namespace" den Typ qualifizieren muss, ist es doch egal wieviel gleichlautende Typen es gibt :mrgreen:
|
AW: FMX-TLine nach rechts-oben
Der VCL/FMX-Formdesigner macht das aber nicht.
Wenn du da TPath auf die Form legst, dann steht auch nur TPath in der Klasse. :stupid: [edit] Noch schlimmer, der macht den Namespace auch noch weg. :lol: Zitat:
|
AW: FMX-TLine nach rechts-oben
Also ich meine das so:
Delphi-Quellcode:
Das müsste doch bei Dir (himitsu) auch gehen, oder? Jedenfalls wird es hier anstandslos kompiliert und läuft.
unit Unit10;
interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, System.IOUtils ; type TForm10 = class(TForm) Image1: TImage; Path1: FMX.Objects.TPath; Path2: FMX.Objects.TPath; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form10: TForm10; implementation {$R *.fmx} procedure TForm10.FormCreate(Sender: TObject); var s: string; begin s := TPath.GetHomePath; // TPath Record (Pfade) path1.Data.Data := ''; // TPath object (SVG) end; end. Die von Dir beschriebene Nachfrage des Compilers kommt doch sonst nur, wenn in der Formdatei für ein Control gleichen Namens in der .pas-Datei ein anderer Typ angegeben ist. Dann muss entweder der Objekt-Typ in der Form-Datei oder in der Unit angepasst werden, je nachdem, welches Control man tatsächlich verwenden möchte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz