AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Gedankenaustausch zu WYSIWYG RTF Control
Thema durchsuchen
Ansicht
Themen-Optionen

Gedankenaustausch zu WYSIWYG RTF Control

Ein Thema von hansklok · begonnen am 16. Mär 2019 · letzter Beitrag vom 18. Mär 2019
 
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Gedankenaustausch zu WYSIWYG RTF Control

  Alt 16. Mär 2019, 23:21
Mit diesem Thema befasse ich mich schon seit 2007 ungefähr.
Immer wieder holt mich das Thema ein. Es kommt auf deine Interne Struktur an.

In laufe der Zeit habe ich ein Konzept entwickelt, was allerdings recht aufwendig ist. Es gibt zunächst einen Statischen Teil und dann gibt es einen Dynamischen Teil.

Das ist wichtig. Denn die Schrift/Schriftgröße beeinflusst die Anzahl der Wörter die pro Zeile angezeigt werden können. Dabei spielt es keine Rolle, die Breite vom Fenster oder von einer DIN A4 Seite anhängt. Du hast immer ein Automatischen Zeilenumbruch. Bei mir ist das Wortweise.
Dann hast du e

Spannend wird es beim Dynamischen Teil, der wird jedes mal komplett neu berechnet. Bei jeder Größen Änderung vom Fenster(Das wird etwas einfacher bei einem reinen Editor)

Der Dynamische Teile besteht aus eine Line/LineItem Struktur.
Alles wird als Box betrachtet, jede Box kann nur eine Formatierung Anzeigen.

Um deine Frage zu beantworten, hole ich soweit aus.

Wenn die LineItems Struktur Zentral ist, ist deine Frage leicht zu beantworten:

Wenn du mit der Maus z.b. irgendwo hinklickst müssen in meinem Fall folgende Schritte ausgeführt werden(Grob geschrieben):
1. Welche LineItem wurde angeklickt?
2. Dann muss die Pixel breite von jedes Zeichen Einzeln berechnet werden.
3. Die Maus Position ist ja, die Klick Position von deiner "Komponente",
d.h. die Pixelbreite, pro Zeichen muss Zusammen Addiert werden und Relativ zur Box berechnet werden.
Die Box speichert(ist einfacher) die X Position sowie die Y Position.
Das Zusammenaddieren wird so lange gemacht, bis die Position größer oder gleich der Maus Position ist.

Wenn du eine Editor Komponente schreibst, wo jedes Zeichen gleich Groß ist, ist es einfach, dann kann man es berechnen.

Das Thema ist nicht ganz leicht.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
 


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 18:06 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