AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Word: Strategie hinter ausgeglichener Spaltenaufteilung
Thema durchsuchen
Ansicht
Themen-Optionen

Word: Strategie hinter ausgeglichener Spaltenaufteilung

Offene Frage von "stahli"
Ein Thema von hansklok · begonnen am 17. Mär 2020 · letzter Beitrag vom 19. Mär 2020
Antwort Antwort
hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#1

AW: Word: Strategie hinter ausgeglichener Spaltenaufteilung

  Alt 17. Mär 2020, 16:47
Also:
- TLayoutSection kümmert sich um Alles und
- TSection hat keine Ahnung davon
Im Constructor von TLayoutSection wird das Quellobjekt, eine TSection übergeben (danach ist TLayoutSection.Data = TSection). TLayoutSection soll eine Methode bekommen, die aus den reinen Daten des Zeigers (TLayoutSection.Data) diese grafisch umsetzt. Das bedeutet, dass TLayoutSection aus den Angaben von TSection.Columns und TSection.ColumnWidths erst einmal TLayoutSection.Columns die benötigte Anzahl an Spalten hinzufügt. Danach müssen alle Absätze aus TLayoutSection.Data.Paragraphs ins Layout übersetzt werden. Dazu werden TLayoutParagraph Objekte angelegt usw. Ein TRun.Text kann ja viel länger sein, als eine Spalte. Deswegen muss TLayoutSection die jeweiligen Tuns in einzelne Worte und Leerzeichen splitten. Daraus erziehen wir dann neue TRuns, die dann zu TLayoutLine.Items hinzugefügt werden. TLayoutLine hat die maximale Breite seines Elternelements TLayoutParagraph. Man kann einer TLayoutLine also nur solange diese Teil Runs hinzufügen, solange TLayoutLine.Width kleiner als TLayoutParagraph.Width ist. Ansonsten muss eine neue Zeile eingefügt werden, mit der dann weiterverfahren wird. Für einen einspaltigen Abschnitt ist das wirklich easy zu realisieren, bei Spalten muss man jedoch u.U.für TParagraph ein Teil TLayoutParagraph in TLayoutColumn einfügen, der den rest des vorherigen Absatzes aus der Spalte zuvor zu Ende darstellt. Außerdem müssen all die TLayoutParagraphs darauf achten, dass sie über die Spalten gleichmäßig verteilt sind.

Ja, es geht um den Spaltenausgleich.

Ich verstehe nicht, wo ich mich unverständlich ausdrücke, ehrlich. Vielleicht hat meine Erläuterung jetzt zu etwas mehr Licht geführt. Dankeschön.
  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 21:15 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