Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Daten in Label.Caption formatieren (https://www.delphipraxis.net/112998-daten-label-caption-formatieren.html)

Yheeky 30. Apr 2008 20:18


Daten in Label.Caption formatieren
 
Hi,

ich benutze mehrere TLabel Komponenten und würde diese gerne gleich formatieren. Jedoch habe ich unterschiedliche Längen an Inhalt.

Hier ein Beispiel:

Vorher:
Code:
Ort: Frankfurt Strasse: Musterstrasse 1
Ort: München Strasse: Musterallee 2
Ort: Gelsenkirchen Strasse: Muster-Mann-Strasse 3
Nachher:
Code:
Ort: Frankfurt        Strasse: Musterstrasse      1
Ort: München          Strasse: Musterallee        2
Ort: Gelsenkirchen    Strasse: Muster-Mann-Strasse 3
Wie kann ich das erreichen? Ich habe schon Format entdeckt, aber mit %s bekomme ich es nicht alleine hin :-(

taaktaak 30. Apr 2008 20:23

Re: Daten in Label.Caption formatieren
 
Moin, Moin,

was meinst du mit mehreren TLabel-Komponenten? Soll jede dargestellte Zeile in EIN TLabel? Am einfachsten wäre es wohl, wenn du jeden Text, der rechtsbündig angezeigt werden soll, in ein eigenes Label schreibst und dieses entsprechend auf dem Form ausrichtest.

Aber sind Label für diese Anzeige die richtige Wahl?

Die Muhkuh 30. Apr 2008 20:27

Re: Daten in Label.Caption formatieren
 
Um gleich noch ein Schritt weiterzudenken, als taaktaak: Labels sind definitiv die falsche Komponente, um das zu erreichen. Ein TListView wäre hier angebracht.

taaktaak 30. Apr 2008 20:33

Re: Daten in Label.Caption formatieren
 
Moin Muhkuh,
ich würd nicht sagen "weiterzudenken" - Gedacht habe ich ja auch daran. Deine Antwort ist nur konsequenter (und damit vermutlich zielführender) :zwinker:

Die Muhkuh 30. Apr 2008 20:36

Re: Daten in Label.Caption formatieren
 
'tschuldigung. Ist falsch rüber gekommen. Ich wollte eigentlich nur auf das raus, was Du geschrieben hast. (Also zielführendere Antwort). :)

Yheeky 30. Apr 2008 22:15

Re: Daten in Label.Caption formatieren
 
Ja, eine ListView wäre hierfür vielleicht sinnvoller, aber ich würde es gerne mit Labels realisieren und die Funktion "Format" gibt´s ja auch, aber ich weiss nicht so recht, wie ich sie in diesem Fall anwenden muss ;-)

Die Muhkuh 30. Apr 2008 22:16

Re: Daten in Label.Caption formatieren
 
Hi,

kannst Du mir einen Grund nennen, warum Du die Labels dafür "vergewaltigen" willst?

Yheeky 30. Apr 2008 22:43

Re: Daten in Label.Caption formatieren
 
Da man Text ja mit einem Label darstellt und ich ja eigentlich nichts anderes machen will, würde ich gerne mal näheres über die Label-Variante erfahren. Wenn alle Stränge reissen kann ich ja zur ListView greifen, aber würde mich mal interessieren, wie man das umsetzen würde...ich bin wissbegierig :-)

himitsu 30. Apr 2008 22:53

Re: Daten in Label.Caption formatieren
 
läbels wären schon möglich, du mußt "nur" soviele Leerzeichen zwischen den "Spalten" einfügen, damit die nächte "Spalte" entpsrechend ausgerichtet wäre.

nutzt du die "Standardschrift" des Läbels, oder einen Fixed-Font?

(Fixed = alle Buchstaben/Zeichen sind gleich breit)

Fixed-Font = Ja:
Zeichen der 1. "Spalte" ermitteln und dann die benötigten Leerzeichen einfügen

Fixed-Font = nein:
breite der ersten Spalte ausrechnen/ermitteln, breite eines Leerzeichens ermitteln und die nötige anzahl (Leerzeichen) errechnen und einfügen.

PS: statt Leerzeichen ließen sich auch Tabulatoren einsetzen,
oder gemischt (da sich mit der Breite des Tabulators nicht leicht rechnen läßt)


Also sooo einfach wird mit einem TLabel nicht.

besser:
> oben Gesagtes

> z.B. ein TMemo ohne Rahmen und mit angepaßter Hintergrundfarbe

> wenn Delphi den MSDN-Library durchsuchenSysLink implementiert hätte, dann hätt ich auch noch dieses vorgeschlagen

oder ...

Die Muhkuh 30. Apr 2008 22:55

Re: Daten in Label.Caption formatieren
 
Zitat:

Zitat von himitsu
> z.B. ein TMemo ohne Rahmen und mit angepaßter Hintergrundfarbe

Das gleiche hätte ich auch beim TListView vorgeschlagen. Dazu noch ReportStyle auf vsReport und die Header ausblenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 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