vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
RichTextBox, zusätzliche Eigenschaften 
Autor: spatzimatzi
Datum: 22.11.16 12:29

Hallo,
habe mir eine kleine (wirklich kleine) Textverarbeitung mit Hilfe der Eigenschaften der RichTextBox zusammengebastelt.
Leider fehlen mir einige Formatierungen. Diese würde ich gerne simulieren durch direkte RTF-Text-Anpassungen.
Getestet habe ich die gewünschten Eigenschaften über WordPad und anschließendem Öffnen des Dokumentes bzw. mit Hilfe eines Text-Editors. Dabei habe ich die gewünschte Syntax direkt von Hand in die Dokumente eingebaut und anschließend in das RTF-Control eingelesen.
Das hat alles sehr gut funktioniert. Die Box scheint somit viele weitere Formatierungsregeln zu kennen und umzusetzen.

Welche Formatierungen sollen noch aufgenommen werden
1. Tabstopps in RTB sind immer linksbündig. Benötige aber auch rechtsbündige Tabs
2. Der Abstand zwischen den Absätzen soll einstellbar sein

Das Anpassen der Texte inkl. der Formatierungen scheint lösbar zu sein (mit meinen Kenntnissen).
Aber wie ermittliche ich die Position im RTF-Text?

Wie stelle ich mir das vor beim Abstand zwischen Absätzen:
1. Stelle den Cursor in einen Absatz
2. Ermitteln des betroffenen Absatzes im RTF-Text (wie mach ich dies?)
3. Einfügen der Formatierung \sbN (z.b. \sb20) mit Hilfe von String-Manipulation im RTF-Text

Frage:
- Bin ich mit meiner Idee auf dem Holzweg?
- Kann man es einfacher machen?
- Soll man die Finger davon lassen?

- Wenn realisierbar, wie ermittele ich den betroffenen Absatz
- Wie macht ihr das?

Über rege Beteiligung würde ich mich sehr freuen

Vielen Dank
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: effeff
Datum: 22.11.16 16:14

So im ersten Takt...

In der RTB kannst Du den selektierten Text abfragen - also das, was Du mit der Maus markiert hast. Diesen Teil ersetzt Du dann eben durch sich selber + Formatierungen...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: spatzimatzi
Datum: 22.11.16 16:32

Hallo effeff,
das verstehe ich nicht.

Wenn ich den Zwischenraum zwischen 2 Absätzen verändern will, dann kann ich im oberen Absatz ein \saN (N > 0) für Spaces after oder aber im unteren Absatz ein \sbN (N > 0) für Spaces before setzen. Oder auch beide.
Dabei wird kein Text selektiert.
Was ich brauche ist ein SelStart, nur eben für den Rtf-Text. Damit kann ich dann das Absatzende (\par) finden und die Formatierung setzen.

Vielleicht habe ich Dich auch nur nicht verstanden. Kannst du deine Ausführungen etwas präzisieren.

Viele Grüße
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

RichTextBox -Class Library 
Autor: Manfred X
Datum: 22.11.16 22:30

Hallo!

So ganz trivial ist der Bezug zwischen Text und RTF-Text (Attribute) nicht:
http://www.codeproject.com/Articles/11306/NRTFTree-A-class-library-for-RTF-processing-in-C
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: Franki
Datum: 23.11.16 01:59

Hallo,
warum möchtest du das Rad neu erfinden?
Es gibt ja Textverarbeitungen wie Sand am Meer, viele davon kann man auch aus seinen VB Programmen heraus ansprechen.

Natürlich kann man so etwas auch selbst programmieren, habe ich auch schon gemacht, aber dabei ging es um andere Dinge als die reine Textverarbeitung. Es ging damals um Umwandlung und Formatierung von Artikeltexten für einen Onlineshop wo dann als Resultet HTML Code heraus gekommen ist. Aber das ist ja ein Spezialfall, was ist dein Ziel warum du das brauchst?

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: spatzimatzi
Datum: 23.11.16 11:20

Hallo Manfred x, hallo Franki,
#Manfred x
Vielen dank für den Link. Habe mir die Seite angeschaut, kann aber nicht erkennen, wie ich diese einbauen und wie ich es nützen könnte.
Glaube weiterhin, dass, sofern ich die Position im Rtf-Text kenne, eine Veränderung der Formatierungsregeln relativ einfach zu handhaben ist. Zumal es sich um Formatierungen um eine Absatzformatierung handelt.

Was ich brauche:
- Gegenstück zu SelectionStart, nämlich bezogen auf den Rtf-Text
- In welchen Absatz befinde ich mich, bezogen auf den Rtf-Text. Die Anzahl würde genügen. Daraus könnte ich die Position ermitteln.
- In welchem Satz befinde ich mich, bezogen auf den Rtf-Text.

Werde auch versuchen, über SelectionStart bestimmte Textpassagen aus dem Absatz für die Suche im Rtf-Text zu bilden. Werden die Strings gefunden, dann bin ich hoffentlich im richtigen Absatz.

Wenn jemand bessere Möglichkeiten hat, nur her damit. Ich würde mich riesig freuen.

#Franki
Ich möchte keine Textverarbeitung schreiben. Es sollte nur WordPad nachgebildet werden. Und ein Rad neu erfinden möchte ich schon gar nicht!

Folgende Situation liegt vor.
In einer Anwendung habe ich mehrere Rtb-Controls. Da diese formatierten Text aufnehmen sollen, aber relativ klein in den Abmessungen sind, kann der Anwender über Doppelklick ein Editorfenster aufrufen mit dem Inhalt aus dem Rtb-Control.
Dieser Form habe ich dann noch ein Menü und eine Buttonleiste verpasst. Damit kann der Anwender einfach und komfortabel arbeiten. Wird das Fenster geschlossen und es liegen Änderungen vor, dann werden diese zurückgeschrieben.

Wenn es jedoch Editoren oder Textverarbeitungen gibt, die ich aufrufen und den Rtf-Text übergeben könnte, wäre dies natürlich sehr schön. Beim Schließen des Programmes müßte der Rtf-Text dann zurückgegeben werden, ohne irgendwelche Handlungen auszuführen.

Leider kenne ich kein Programm. Vielleicht kannst du mir Informationen geben!

Vielen Dank für die Informationen
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: Manfred X
Datum: 24.11.16 06:07

Hallo!

Ich rate davon ab, RTF-Tags in das RTB-Control von Win.Forms einzubeziehen,
die dort nicht dokumentiert sind. Ob solche Tags beachtet, korrekt verarbeitet
und verwaltet werden, ist nicht sichergestellt.

Ich würde am Markt nach einem (kommerziellen ?) Control suchen, das die
benötigte Funktionalität verfügbar macht.

Die Position eines Textabschnitts (RTF) im RTB-Control kann gefunden werden,
wenn ein Abschnitt markiert, dort eine sonst nicht verwendete Kennfarbe
(SelectionColor) gesetzt und unmittelbar danach in der RTF-Eigenschaft
nach der Position dieses Tags gesucht wird (IndexOf) - danach ist es wieder
zu entfernen (Remove).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: spatzimatzi
Datum: 24.11.16 14:13

Hallo Manfred x,
das ist eine super Idee.
Und gleich ans Werk gemacht.

Wollte für die Kennung den Hintergrund mit SelectionBackColor auf die Farbe von RichTextBox.BackColor setzen, damit der Anwender das nicht sieht. Klappt prima.

Wird die Farbe gesetzt dann wird als Formatierung \highlightN und \highlight0 gesetzt. N ist dabei die Farbe, die in der Farbentabelle \colortbl hinterlegt ist. Wunderbar. Über die Farbtabelle suche ich nach der Farbe, nehme die Nummer und suche danach nach dem entsprechenden Eintrag. Schon bin ich im Absatz und kann hier jede beliebige Formatierung vornehmen. Natürlich nur die, die auch akzeptiert werden

Nach der Formatierung muss ich dann die Hilfs-Formatierung wieder löschen. Leider kann man SelectionBackColor nicht so ohne weiteres löschen.

In WordPad kann man für die Texthervorhebungsfarbe "Keine" angeben. Dann wird die Formatierung komplett entfernt.

Mit = Color.Empty schon probiert. Klappt nicht

Gibt es einen Trick, das die Box wie in WordPad reagiert??

Viele Grüße
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: Manfred X
Datum: 25.11.16 06:58

Ungeprüft **** Ungeprüft **** Ungeprüft

1. RTF-Eigenschaft der RTB in einer String-Variable speichern
2. In RTB einen Abschnitt markieren (Selection)
3. Kennfarbe eintragen (SelectionColor)
4. Position des Kennfarb-Tags ermitteln (IndexOf)
5. Position des selektierten Abschnitts innerhalb des gespeicherten
Strings (1) unter Verwendung der Information aus (5) ermitteln
6. Gewünschte RTF-Tags in String (1) einbauen
7. Den modifizierten String (1) auf die RTF-Eigenschaft der
RTB zuweisen

Ungeprüft **** Ungeprüft **** Ungeprüft
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: spatzimatzi
Datum: 08.12.16 16:43

Hallo,
nach längerer Zeit konnte ich mich wieder um die Formatierung kümmern.

Die Formatierungen klappen einwandfrei.

In der Regel ist es so, dass als Werte TWIPS entgegengenommen werden.
Das ist für den Anwender natürlich etwas unbefriedigend.

Jetzt dachte ich mir, man könnte die TWIPS in Pixel bzw. in Millimeter umrechnen.
Dazu habe ich auch im Internet gestöbert aber nich's passendes gefunden.

Es ist doch richtig, dass die Umrechnungen bei unterschiedlichen Bildschirmauflösungen auch unterschiedlich durchgeführt werden müssen.

Was benötige ich:
Den Rechenweg zum Umrechnen von TWIPS in Pixel oder von TWIPS in Millimeter

Freue mich schon auf die Antworten

Viele Grüße
spatzimatzi
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: RichTextBox, zusätzliche Eigenschaften 
Autor: GPM
Datum: 08.12.16 17:20

Wikipedia-Erklärung:

https://de.wikipedia.org/wiki/Twip

MfG GPM
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel