AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FMX-TLine nach rechts-oben

Ein Thema von himitsu · begonnen am 6. Mai 2015 · letzter Beitrag vom 8. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

FMX-TLine nach rechts-oben

  Alt 6. Mai 2015, 00:15
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.


PS: Warum kann man in diesem Unterforum als Präfix die Sprachen auswählen, wo doch Frameworks (VCL, FMX usw.) das Wichtigere wären?
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: FMX-TLine nach rechts-oben

  Alt 6. Mai 2015, 18:12
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.
Du hast die Rotation ja selber schon erwähnt, RotationAngle = 90 würde das von Dir gewünschte Ziel erreichen (Linie von unten links nach rechts oben). Damit kannst hast Du dann quasi auch Right und Bottom realisieren.

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.

PS: Warum kann man in diesem Unterforum als Präfix die Sprachen auswählen, wo doch Frameworks (VCL, FMX usw.) das Wichtigere wären?
Ja, das fände ich auch eine sinnvolle Erweiterung. Ich interessiere mich sehr für die FMX-Fragen, bekomme einen großen Teil davon aber gar nicht mit, weil man es der Frage als solcher gar nicht ansieht, dass es sich um ein FMX-Thema handelt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: FMX-TLine nach rechts-oben

  Alt 6. Mai 2015, 18:38
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.

Hatte mir schon fast überlegt ein Image auf die Form zu legen, mit dem gewünschten Bild.
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)
Und selbst als Zip isses zu groß für die DP.
Miniaturansicht angehängter Grafiken
unbenannt.png  
$2B or not $2B

Geändert von himitsu ( 6. Mai 2015 um 18:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: FMX-TLine nach rechts-oben

  Alt 6. Mai 2015, 19:09
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.
Miniaturansicht angehängter Grafiken
path-svg.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: FMX-TLine nach rechts-oben

  Alt 7. Mai 2015, 08:18
TPath?
Mal ganz im Ernst ... Das war jetzt wirklich die beste Idee? (von dir und für deren Namenswahl)
Es mach richtig Spaß damit zu arbeiten, vorallem wenn man die IOUtils (Delphi-Referenz durchsuchenIOUtils.TPath) eingebunden hat.
Path1: TPath;
Zitat:
[dcc32 Fehler] Feig.Test.Main.pas(160): E2217 Published-Feld 'Path1' ist weder vom Typ class noch interface
Schade auch, daß dort drin die Zeilenumbrüche verloren gehn, wenn man das später wieder bearbeiten will.
Code:
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
Fehlen dann nur noch die Pfeile.

Trotz meines guten Paint-Könnens sieht es doch schonmal nicht so schlimm aus.
Miniaturansicht angehängter Grafiken
unbenannt.png  
$2B or not $2B

Geändert von himitsu ( 7. Mai 2015 um 08:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: FMX-TLine nach rechts-oben

  Alt 7. Mai 2015, 23:38
TPath?
Mal ganz im Ernst ... Das war jetzt wirklich die beste Idee? (von dir und für deren Namenswahl)
Es mach richtig Spaß damit zu arbeiten, vorallem wenn man die IOUtils (Delphi-Referenz durchsuchenIOUtils.TPath) eingebunden hat.
Path1: TPath;
Zitat:
[dcc32 Fehler] Feig.Test.Main.pas(160): E2217 Published-Feld 'Path1' ist weder vom Typ class noch interface
Ja, das mit der Namensgebung ist nicht gut. Man sollte TPath evtl. in TSVG umbenennen.

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").
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: FMX-TLine nach rechts-oben

  Alt 8. Mai 2015, 10:46
Ja, das mit der Namensgebung ist nicht gut. Man sollte TPath evtl. in TSVG umbenennen.
Nicht das man schon selber eine TPath hatte bevor es die TPath gab...


Mavarik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: FMX-TLine nach rechts-oben

  Alt 8. Mai 2015, 10:58
Wenn man sowieso per "Namespace" den Typ qualifizieren muss, ist es doch egal wieviel gleichlautende Typen es gibt
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: FMX-TLine nach rechts-oben

  Alt 8. Mai 2015, 13:31
Der VCL/FMX-Formdesigner macht das aber nicht.
Wenn du da TPath auf die Form legst, dann steht auch nur TPath in der Klasse.

[edit]
Noch schlimmer, der macht den Namespace auch noch weg.
Zitat:
[Window Title]
Fehler

[Content]
Feld FormSampleMain.InventoryPath muss vom Typ TPath sein, ist aber als FMX.Objects.TPath deklariert. Soll die Deklaration korrigiert werden?

[Ja] [Nein] [Abbrechen] [Hilfe]
$2B or not $2B

Geändert von himitsu ( 8. Mai 2015 um 13:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: FMX-TLine nach rechts-oben

  Alt 8. Mai 2015, 17:10
Also ich meine das so:

Delphi-Quellcode:
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.
Das müsste doch bei Dir (himitsu) auch gehen, oder? Jedenfalls wird es hier anstandslos kompiliert und läuft.

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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz