Fragen zu TVirtualStringTree

Für Fragen von Einsteigern und Programmieranfängern...
wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Fragen zu TVirtualStringTree

Beitrag von wp_xyz »

Ich hab's jetzt mal selbst probiert, und das funktioniert wie es sein soll - siehe Anhang. Vergleiche mal ganz pingelig genau die diversen Options, hier ist der VTV etwas unübersichtlich.
Dateianhänge
stringlist_node.zip
(2.81 KiB) 61-mal heruntergeladen

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Fragen zu TVirtualStringTree

Beitrag von wp_xyz »

wp_xyz hat geschrieben:
So 14. Jan 2024, 16:26
Ich hab's jetzt mal selbst probiert, und das funktioniert wie es sein soll - siehe Anhang. Vergleiche mal ganz pingelig genau die diversen Options (auch beim Header!), hier ist der VTV etwas unübersichtlich.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

Hol's der Geier, jetzt versteh ich die Welt nicht mehr: Alles lediglich kopiert und es geht - ABER kann ich Knoten nicht selektieren, außer ich setze TreeOptions.SelectionOptions.toAlwaysSelectNode, wodurch er aber keinen Subknoten macht wie bei dir.
NeuerKnoten.zip
(3.92 KiB) 47-mal heruntergeladen

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Fragen zu TVirtualStringTree

Beitrag von wp_xyz »

TreeOptions.SelectionOptions toExtendedFocus markieren --> man kann auch in Subnodes klicken
TreeOptions.MiscOptions toGridExtensions markieren --> man kann irgendwo in der Zelle klicken, nicht nur auf dem Text.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

Hallo wp_xyz,
zuerst mal danke für den Markierungshinweis!
wp_xyz hat geschrieben:
So 14. Jan 2024, 16:13
Könntest du das in ein kleines Projekt packen? Wenn ich selbst versuche, das nachzuvollziehen, mache ich vielleicht etwa anders als du...
Jim Knopf hat geschrieben:
So 14. Jan 2024, 15:33
Kann man irgendwie den Index der Spalten auslesen? Muss fast ein Trick sein, denn bei den Columns selbst habe ich nichts gefunden.
Ist das nicht das Column-Argument, das dem Event-Handlers übergeben wird?
In meinem bisherigen Programm kommt es häufig vor, dass der Wert einer Zelle per Programm geändert wird. Zum Beispiel gibt es in der Kapitelübersicht 80% nicht sichtbarer Spalten, die unterschiedlichste Werte zur dazugehörigen Szene enthalten. Es tut sich also sehr viel für den Anwender unsichtbar. Mit meinem Beispiel, wo ich die TStringList im Node-Record verwende, will ich direkt in diese Liste per Programm in bestimmte Spalten (=StringList[nnn] := irgendwas) Werte übergeben.
Dazu käme noch, dass der Knoten - wenn es doch sichtbare Werte sind wie z.B. Zeichen-/Wörter-/Seitenanzahl - die VST refresht werden sollte. Letzteres habe ich aber schon irgendwo gesehen, glaube ich.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

Und zwei weitere Fragezeichen:

1. In deinem Beispiel wp_xyz, zeigt er in der Root mehr an und ich vermute, dass erst dadurch Unterknoten erzeugt werden. Unser Quelltext diesbezüglich ist gleich ...

Code: Alles auswählen

    Node := vt.AddChild(vt.FocusedNode); 

... nur fügt er den Knoten bei mir einfach hinter dem Focused ein anstatt als Subnode.
Ich habe sämtliche Properties unserer Grids verglichen, finde aber keinen Unterschied. Auch die Suche nach 'Root' im Quelltext führte zu keinem Ergebnis.

2. Bisher ist mein Farbänderungsversuch für die Spaltentitel (Header) erfolglos. Nach meinem Dafürhalten sollte es Header.Background sein, ist es aber nicht. Bei den Spalten selbst gibt es aber nur die Farbe für die Spalte. Auch bei den Header.Options passt nichts zum Thema. Und bei den Colors gibt es nur HeaderHotColor. Allerdings wenn man auf den Spaltentitel klickt, dann zeigt er hier die Farbe an, die Ich unter Header.Background eingetragen habe.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1436
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Fragen zu TVirtualStringTree

Beitrag von fliegermichl »

Zum aktualisieren / refreshen des vst kannst Du vst.invalidate aufrufen.

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Fragen zu TVirtualStringTree

Beitrag von wp_xyz »

Jim Knopf hat geschrieben:
Mo 15. Jan 2024, 10:09
1. ... nur fügt er den Knoten bei mir einfach hinter dem Focused ein anstatt als Subnode.
Ich habe sämtliche Properties unserer Grids verglichen, finde aber keinen Unterschied.
Ja, das sehe ich bei deinem Beispiel auch. Keine Ahnung, was da falsch ist. Versuche es Schritt für Schritt neu aufzubauen, basierend auf meinem Beispiel, und prüfe nach jedem Schritt ob die Nodes noch als Subnodes hinzugefügt werden.

Generell ist die Idee hinter

Code: Alles auswählen

Node := VST.AddChild(ParentNode);
dass als Argument von AddChild der Node angegeben wird, zu dem der neue hinzugefügt wird, und wenn das Argument nil ist, dann wird eben ein Node ganz oben erzeugt. Ob es in VST einen expliziten "Root"-Node gibt, weiß ich gar nicht. Ich denke aber, das ist ein Node, der mit VST.AddChild(nil) erzeugt wird, weil dieser keinen Parent hat.
Jim Knopf hat geschrieben:
Mo 15. Jan 2024, 10:09
2. Bisher ist mein Farbänderungsversuch für die Spaltentitel (Header) erfolglos.
Na dann - viel Spaß... (Die Frage nach "ist das nötig?" verkneife ich mir...).

Was willst du ändern? Ich habe in https://stackoverflow.com/questions/323 ... ree-header eine funktionierende Anleitung gefunden, den ganzen Header einzufärben:
- Themed-Drawing (TreeOptions.PaintOptions toThemedAware) ausschalten.
- Den Header für Custom-Drawing anmelden: Header.Options hoOwnerDraw einschalten
- Im Event OnHeaderDrawQueryElements mitteilen, welche Header-Elemente man selbst zeichnen möchte (hpeBackground)
- Im Event OnAdvancedHeaderDraw den Hintergrund neu füllen, wenn das gewünschte Element dran ist.
- Vielleicht geht es auch einfacher...

Code: Alles auswählen

procedure TForm1.vtHeaderDrawQueryElements(Sender: TVTHeader;
  var PaintInfo: THeaderPaintInfo; var Elements: THeaderPaintElements);
begin
  Elements := [hpeBackground];
end;

procedure TForm1.vtAdvancedHeaderDraw(Sender: TVTHeader;
  var PaintInfo: THeaderPaintInfo; const Elements: THeaderPaintElements);
begin
  if (hpeBackground in Elements) then
  begin
    PaintInfo.TargetCanvas.Brush.Color := clFuchsia;
    PaintInfo.TargetCanvas.FillRect(PaintInfo.PaintRectangle);
  end;
end; 
Wie man einzelne Spaltenköpfe selbst zeichnet, weiß ich nicht.

[EDIT]
Im Advanced-Demo wird Header-Drawing vorgeführt: Unit HeaderCustomDrawDemo, Projekt Advanced, Ordner Demos der VTV-Installation, bzw, wenn du den VTV verwendest, der bei Lazarus mit im Lieferumfang ist, dann ist das Projekt im Order Examples/VirtualTreeView/vst_advanced der Lazarus Installation.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

Dankeschön für die viele Mühe!

In meinen vierzig selbstständigen IT-Jahren habe ich eine Erfahrung gemacht: Wenn etwas so richtig spießt, dann sollte man sich zwei Mal überlegen, ob der Weg der richtige ist. Ein Beispiel: Um die Jahrtausendwende haben wir in meiner Firma den 'Office-Manager' gebaut. Das war noch vor Windows XP und meine Leute haben, als das herauskam, gewitzelt: "Die Optik hat der Billi abgeschaut". Ich verwende das Din noch heute, weil ich nie ein besseres CRM gefunden habe - kann von Adressen über Mails und Termine bis zu Serienbriefen und -mails wirklich alles.

Bild

Aber es hat unglaublich gefuxt. Ich hatte mir nämlich eine 'andere' Optik in den Kopf gesetzt, wie man sieht. Da sind sicher 10.000 Stunden mehr hineingeflossen wegen der Optik. Und letztlich haben wir gar nicht so viel davon verkauft. Also in keinem Verhältnis. Irgendwie kommt es mir jetzt etwas ähnlich vor. Wenn ich mir allein die Geschichte mit dem Grid jetzt ansehe, dann wird mir ganz schwummerig. Hier als Vergleich das Befüllen eines Grids von DevExpress, wenn ich z.B. aus einer CSV-Datei heraus ein Grid fülle:

Code: Alles auswählen

  L := TStringList.Create;
  try
    L.LoadFromFile('C:\Filename.csv');
    for I := 0 to L.Count-1 do with tl.Add do
    begin
      Strings[tcId.Index] := StrExtrStr(L[I], 0):
      Strings[tcTitle.Index] := StrExtrStr(L[I], 1):
      Strings[tcWrap.Index] := StrExtrStr(L[I], 2):
    end;
  finally 
    L.Free
  end;
Mit den lächerlichen vier Zeilen werden die Positionen 0 bis 2 aus der CSV-Datei in die Spalten 1, 3 und 7 eines neu erstellten Knotens eingefügt die man durch benannte Indizes ansprechen kann, sich also nicht einmal einen Index merken muss. Dann kann man noch tl.SaveToFile sagen und das Grid ist auf der Platte. Sonst rein nix außer dem Zusammenklicken im Formular.
Okay, da muss ich wohl durch.
Aber heute erfahre ich, dass mein Editor in der seitenweisen Darstellung à la Word (siehe unten) - ich verwende TRichViewEdit und TSRichViewEdit von Sergey Tkachenko, wirklich sehr leistungsfähig - weder auf Windows noch auf Lazarus für andere Plattformen verfügbar. Der normale Editor schon - ab Herbst! - aber nicht der für diese seitenweise Darstellung, auf die die Leute einfach stehen. Auf die Idee kam gar nicht!

Bild

Jetzt muss ich mal meine Wunden lecken. Und dann ...?

charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: Fragen zu TVirtualStringTree

Beitrag von charlytango »

Jim Knopf hat geschrieben:
Mo 15. Jan 2024, 22:15
Jetzt muss ich mal meine Wunden lecken
Das kann ich nur zu gut nachfühlen. Ich kann eine Applikation in der so etwa 8 Mannjahre stecken auch nicht wirklich nach Lazarus migrieren weil es die damals eingesetzten Komponenten nicht für Lazarus gibt (denen ich wirklich nachtrauere).

Nicht für Lazarus verfügbar:
DevExpress Suite (mit Quantumgrid und etlichen anderen Goodies)
WPTools
ReportBuilder
Korzh Simple Query

Teilweise für Lazarus verfügbar:
TxQuery (da gäbe es zumindest eine Möglichkeit)
Die ganze Turbopower Riege (obwohl sich wp_xyz sehr bemüht)
JVCL (auch hier Dank an wp_xyz)

Mir ist schon klar dass der Komponentenmarkt (besonders für Pascal-oide) nur ein recht schmales und daher unrentables Marktsegment ist. Das müsste auch das Entwicklungssystem irgendwie fördern.
Denn ich bin der (vermutlich einsamen) Meinung dass der Erfolg eines Entwicklungssystems wie Lazarus/FPC auch wesentlich von der Verfügbarkeit hochwertiger Komponenten abhängt. Da wäre ich auch bereit dafür Geld in die Hand zu nehmen.
Leider läuft die Politik von Lazarus nicht in eine Richtung in der ich einen Erfolg (wie immer man den definieren möchte) erkennen kann. Mir scheint, da ist viel Kraft vorhanden, die man aber nicht auf die Straße bekommt.

Bitte nicht in den falschen Hals bekommen. Ich liebe Lazarus und es ist mittlerweile das Entwicklungssystem meiner Wahl. Doch die dahinter liegende Strategie/Politik/Masterplan (so sie denn überhaupt existiert) ist einfach zu kurz gedacht und bringt das Projekt kaum weiter.
Auch ein (so großes) OpenSource-Projekt braucht eine finanzielle Basis, eine Strategie samt Marketing und Kommunikation das weit über das hinausgeht was derzeit existiert oder auch nur angedacht ist.
Meinem alten Kunden (also den mit dem 8MJ-Projekt) hätte ich Lazarus als Basis nicht wirklich erklären können. Solche Kunden brauchen die vermeintliche Sicherheit einer vermeintlichen Kontinuität,
Zuletzt geändert von charlytango am Mi 17. Jan 2024, 16:03, insgesamt 1-mal geändert.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

Ich finde das alles supertraurig!

Nicht, weil meine Hoffnungen zunichte gemacht sind (schon auch, natürlich), sondern weil sich so viele Leute engagieren und zu helfen versuchen, (für mich) allen voran wp_xyz (bei der Gelegenheit: Was für eine Beziehung/Geschichte hast du zu Lazarus?) und dann Leute wie ich trotzdem wieder aufgeben müssen, weil etwas einfach nicht realisierbar ist.

Ich sehe das auch ähnlich wie Charlytango: Ein Gesamtkonzept sollte zentral organisiert sein, das gewisse Grundvoraussetzungen bietet. Dazu gehören neben Edits, Panels und Labels mittlerweile unbedingt eine leistungsfähige, aber einfache TreeList à la DevExpress, eine Komponente à la FormStorage von seinerzeit RX, jetzt Jedi. Gut wäre sicher auch eine RTF-Komponente, die das Übliche bis hin zu Listen kann - Tabellen kann man notfalls auch als Grafiken einfügen. Nur ist bei Letzterem eine seitenweise Darstellung notwendi (darauf stehen die Anwender!), was aber (hat mir Sergey Tkachenko erzählt) zum Rendern unterschiedliche Engines pro OS braucht - das ist natürlich hart. Vieles andere, glaube ich, lässt sich mit Eigeneinsatz lösen. Wir hatten in meiner früheren Firma uns auch die Datenanbindung von Pervasive (ehemals BTrieve) zum Developer-Express-Grid selbst gemacht bis hin zu datenbankverbundenen eigenen Edits. Aber alles selbst machen ist einfach zu viel und unrationell.
Nehmen wir mal das TVirtualStringTree. Es kann jede Menge, das ist beeindruckend. Aber vom Handling her - bitte nicht böse sein - ist es eine Katastrophe. Auch andere TreeLists sind diesbezüglich nicht viel besser, können dafür aber weniger. Warum haben das nur DevExpress so auf die Reihe bekommen, wie es einfach handhabbar ist? All diese Komponenten, in denen so viel Arbeit steckt, erinnern mich an die Cartoons zu Programmen, die jeder kennt: Was der Kunde wollte, der Berater verstand usw. Als Komponentenhersteller ist der andere Programmierer der 'Kunde'. Und wir alle wissen ja, dass sich Kunden nicht in ein Programm hineindenken, sondern es intuitiv handhaben wollen und auch können sollten. Das erlebe ich mit meinem Patchwork täglich und investiere viel Zeit in die Usability. Das scheint mir oft nicht der Fall zu sein. Allein wenn ich an die irre umfangreiche 'Hilfe' zu VST denke! Seitenweises Scrollen und man findet doch nicht, was man braucht. So, wie es in der Delphi5-Hilfe war ist das optimal: Properties, Methoden, Events und dabei evtl. wovon sie abgeleitet worden sind. Basta, mehr braucht man zum Anwenden nicht, da nützt auch die schiere Menge nichts.

Natürlich ist es leicht, groß zu reden bei einem Open-Source-Projekt. Ich frage mich eh immer, wovon all die engagierten Leute denn leben? Aber was wäre mit einer normalen Firma - oder wenigstens einem Verein, wenn sie keinen Gewinn machen soll - die eng mit den Lazarus-Entwicklern zusammenarbeiten - und diese Zusatzsachen schnitzen und verkaufen? Ich denke, jeder Programmierer würde etwas Geld in die Hand nehmen, solange es nicht unverschämt ist wie Delphi oder Developer Express. Oder vielleicht mehr Zusammenarbeit mit Leuten wie Sergey Tkachenko mit seiner Editor-Suite. Der verkauft das ja auch uns ich bezahle gern etwas dafür.

Ich finde das Lazarus-Projekt wunderbar, wirklich! Pascal ist eine strukturierte Sprache und auch die IDE ist gut gelungen - um einiges besser als das neue Delphi, finde ich. Vielleicht lässt sich ja eine Möglichkeit finden, die Probleme der direkten Open-Source-Demokratie in den Griff zu bekommen, indem sich eine ordnende Hand findet? Bitte auch hier um Nachsicht, wenn ich so rede, ich kenne ja keinerlei Hintergründe.

Vielen Dank euch unermüdlichen Helferlein! Ich würde mich freuen, wenn ich doch einmal wieder hier landen könnte, um echt aufzusetzen. Ich werde versuchen, lose dabei zu bleiben, nur jetzt ist leider zum zweiten Mal doch nichts geworden.

Herzliche Grüße
Martin

wp_xyz
Beiträge: 4895
Registriert: Fr 8. Apr 2011, 09:01

Re: Fragen zu TVirtualStringTree

Beitrag von wp_xyz »

Ich denke, du gibst zu früh auf. Wenn man genau die Anforderung kennt, bin ich sicher, dass man auf der Basis des VTV sowas wie deinen DevExpress-Tree bauen kann (denn etwas anderes können die auch nicht gemacht haben). Für die RichText-Ausgabe gibt es TRichView bzw. wahrscheintlich besser KMemo; du müsstest nur einmal prüfen, ob sie deine Anforderungen erfüllen. FormStorage ist in Lazarus vorhanden, was ist das Problem damit?

Du fragst nach meiner Beziehung zu Lazarus. Ich bin User wie alle anderen auch. Allerdings habe ich mich anfangs sehr in TAChart und fpspreadsheet engagiert und mit viele Codevorschläge eingereicht, so dass man sich entschieden hat, mich ins Lazarus-Team aufzunehmen, wo ich mich hauptsächlich um (einige) Komponenten und die CCR-Landschaft kümmere.

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

wp_xyz hat geschrieben:
Di 16. Jan 2024, 13:31
Wenn man genau die Anforderung kennt, bin ich sicher, dass man auf der Basis des VTV sowas wie deinen DevExpress-Tree bauen kann
Dass es dann so einfach funktioniert wie oben beschrieben? Hm ...
wp_xyz hat geschrieben:
Di 16. Jan 2024, 13:31
Für die RichText-Ausgabe gibt es TRichView bzw. wahrscheintlich besser KMemo; du müsstest nur einmal prüfen, ob sie deine Anforderungen erfüllen.
KMemo ist ganz nett, aber offenbar nicht ansatzweise mit TRichView vergleichbar. Das Freeware-TRichView ist nicht vergleichbar mit der kommerziellen Version. Außerdem geht es mir mehr um TSRichView, den Wrapper, der den Text seitenweise wie Word darstellt (siehe der eine Screenshot von weiter vorne). Dieser Editor ist das Herzstück von Patchwork, weil es ja um ein Programm geht, mit dem man Romane, Serien, Sachbücher usw. schreibt. TRichView kann direkt nach Word und HTML speichern, kann Kopf- und Fußzeilen und wir haben uns eine Schnittstelle zum Duden gemacht. Das alles habe ich bis dato nirgends gefunden, und schon gar nicht plattformübergreifend.
wp_xyz hat geschrieben:
Di 16. Jan 2024, 13:31
FormStorage ist in Lazarus vorhanden, was ist das Problem damit?
Sorry, hab ich nicht gefunden. Ein eigenes Package? Wenn ja, welches?

Für das Grid hätte ich ja noch einiges in Kauf genommen, aber der Editor ist leider das KO-Kriterium geworden.

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Fragen zu TVirtualStringTree

Beitrag von theo »

Jim Knopf hat geschrieben:
Di 16. Jan 2024, 14:37
KMemo ist ganz nett, aber offenbar nicht ansatzweise mit TRichView vergleichbar. Das Freeware-TRichView ist nicht vergleichbar mit der kommerziellen Version. Außerdem geht es mir mehr um TSRichView, den Wrapper, der den Text seitenweise wie Word darstellt (siehe der eine Screenshot von weiter vorne). Dieser Editor ist das Herzstück von Patchwork, weil es ja um ein Programm geht, mit dem man Romane, Serien, Sachbücher usw. schreibt. TRichView kann direkt nach Word und HTML speichern, kann Kopf- und Fußzeilen und wir haben uns eine Schnittstelle zum Duden gemacht. Das alles habe ich bis dato nirgends gefunden, und schon gar nicht plattformübergreifend.
Wenn man Jahre mit so einer Software verbringt, könnte man ja auch auf die Idee kommen, die Komponente selber zu schreiben?
So wie du das RichView im Screenshot oben einsetzt, benötigst du ja nicht mal Textformatierung etc.
Ich frage mich allerdings ein wenig nach dem Zweck. Ein Wysiwyg Layout ist das ja auch nicht.
Es fehlen Silbentrennung, Erstzeileneinzüge, Absatzkontrolle etc. oder anders gesagt: Gedruckt wird es eh anders aussehen, also warum sollte man so tun, als hätte man den Seitenumbruch "im Griff"?
Ich habe vor Jahren einmal eine "Machbarkeitsstudie" einer solchen Komponente gecodet, die aber viel mehr können sollte, fast wie ein Word oder ein Browser.
Es hat im Prinzip funktioniert, ich bin dann aber an meinem eigenen Anspruch erstickt. :lol:

Benutzeravatar
Jim Knopf
Beiträge: 98
Registriert: So 18. Mai 2014, 15:16
OS, Lazarus, FPC: Win10
CPU-Target: 64Bit
Wohnort: Klagenfurt
Kontaktdaten:

Re: Fragen zu TVirtualStringTree

Beitrag von Jim Knopf »

theo hat geschrieben:
Di 16. Jan 2024, 15:10
So wie du das RichView im Screenshot oben einsetzt, benötigst du ja nicht mal Textformatierung etc.
Ich frage mich allerdings ein wenig nach dem Zweck. Ein Wysiwyg Layout ist das ja auch nicht.
Es fehlen Silbentrennung, Einzüge, Absatzkontrolle etc. oder anders gesagt: Gedruckt wird es eh anders aussehen, also warum sollte man so tun, als hätte man den Seitenumbruch "im Griff"
Ich habe mich auch nicht bemüht, abzubilden, was die Komponente alles kann, sondern lediglich schnell einen Screenshot vom Schreibbereich genommen, der gerade offen war. Natürlich ist es WYSIWYG mit allen möglichen Formatierungsoptionen. Silbentrennung macht beim Schreiben selbst keinen Sinn, das Manuskript wird erst bei Bedarf zu einem druckfertigen Gesamtdokument und/oder eBook kompiliert. So sieht dieses Gesamtdokument aus, das du als PDF ausdrucken und der Druckerei schicken kannst.

Bild

Antworten