AGB  ·  Datenschutz  ·  Impressum  







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

VCL-Control für Textanzeige

Ein Thema von freimatz · begonnen am 24. Nov 2018 · letzter Beitrag vom 25. Nov 2018
Antwort Antwort
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#1

VCL-Control für Textanzeige

  Alt 24. Nov 2018, 20:15
Ich suche eine Komponente für die Anzeige von Text. Die soll könnnen:
  1. Breite soll fix sein
  2. Die Höhe soll automatisch je nach Text ändern
  3. Man soll einen Umbruch einfügen können
  4. Schön wäre noch ein zusätzlicher Rand oben und unten
Versucht habe ich TLabel, TPanel und TMemo. Letztere bricht schön um, macht aber die Höhe nicht automatisch. Was nehmt ihr denn so dafür? Als Parent ist dann ein TFlowPanel da.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: VCL-Control für Textanzeige

  Alt 24. Nov 2018, 20:28
Nimm ein TMemo und errechne dir die benötigte Höhe selbst:

https://www.delphipraxis.net/189407-...%5Bvcl%5D.html
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: VCL-Control für Textanzeige

  Alt 24. Nov 2018, 20:43
Danke.
Habe ich mir kurz angesehen. Wenn das Memo lange Zeilen selber umbricht dann stimmt das wohl nicht. Fixen Text könnte ich selber umbrechen, aber ein Problem gibts bei dynamischen Text.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: VCL-Control für Textanzeige

  Alt 24. Nov 2018, 21:57
Was ist Dynamischer Text

Angenommen Du hast einen 300 Zeichen langen String. Den übergibst Du als Text an das Memo und liest dann die Anzahl Zeilen aus?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#5

AW: VCL-Control für Textanzeige

  Alt 25. Nov 2018, 13:41
Man nehme ein TPanel der gewünschten Breite, packe ein TLabel drauf und setze TLabel.Align auf alTop. Fertig.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: VCL-Control für Textanzeige

  Alt 25. Nov 2018, 17:25
Inwiefern erfüllt das Anforderung Nummer 2?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#7

AW: VCL-Control für Textanzeige

  Alt 25. Nov 2018, 17:59
TLabel hat die Eigenschaft WordWrap, kann also selbständig den Text passend umbrechen.

Mit AutoSize = True sorgt es dafür, dass es die richtige Größe für den Inhalt bekommt.

Das TPanel, auf dem das TLabel liegt, passt wiederum seine Größe per AutoSize an die vom TLabel geforderte an.

Bei geändertem Inhalt ändert sich auch die Größe, damit ist die Anforderung Nummer 2 erfüllt.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: VCL-Control für Textanzeige

  Alt 25. Nov 2018, 20:45
Oh, das war mir neu. Ich dachte immer AutoSize und WordWrap würden sich ausschließen. Dann war dem wohl nicht so.

Zitat:
Wenn WordWrap den Wert True hat, ist die Breite des Steuerelements fest. Ist AutoSize ebenfalls True, bewirken Änderungen am Text, dass das Steuerelement in der Höhe angepasst wird. Wenn AutoSize True ist und WordWrap False, wird die Höhe des Steuerelements von der Schriftart vorgegeben, und Änderungen am Text bewirken eine Breitenänderung.
DocWiki


Oder Align = alTop oder so verhindert AutoSize, irgendetwas war da...

Geändert von Der schöne Günther (25. Nov 2018 um 20:45 Uhr) Grund: Noch ein Gedanke
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#9

AW: VCL-Control für Textanzeige

  Alt 25. Nov 2018, 22:35
Ich bezog mich auf Delphi 2009. Muss also schon sehr lange so sein, wenn das mal anders war.

Zitat:
Wenn WordWrap den Wert True hat, ist die Breite des Steuerelements fest. Ist AutoSize ebenfalls True, bewirken Änderungen am Text, dass das Steuerelement in der Höhe angepasst wird.
Das ganze funktioniert sehr sehr seltsam. Nach jeder Änderung wird das Label auf die zu der Zeit kleinste Breite eingestellt, bei denen sich die Umbrüche nicht weiter verändern. Das macht die Nutzung des Labels alleine nutzlos.

Das TPanel, auf dem das TLabel liegt, passt wiederum seine Größe per AutoSize an die vom TLabel geforderte an.
Das mit dem TPanel.Autosize würde ich nicht machen. Lieber manuell die Höhe einstellen nach dem Ändern des Labeltextes.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:48 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