AGB  ·  Datenschutz  ·  Impressum  







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

RichEdit scrollen verhindern

Ein Thema von fsch · begonnen am 25. Apr 2015 · letzter Beitrag vom 1. Mai 2015
Antwort Antwort
fsch

Registriert seit: 30. Apr 2010
5 Beiträge
 
#1

AW: RichEdit scrollen verhindern

  Alt 26. Apr 2015, 09:45
@mjustin:
Die Idee mit dem etwas größeren Eingabefeld und der farbigen Markierung der Druckbereichsüberschreitung ist gut. Nur löst das nicht das grundsätzliche Problem, dass das RichTextEdit horizontal und vertikal scrollt. Das möchte ich auf jeden Fall verhindern.

@Popov:
Der Vorschlag funktioniert in einem TMemo, jedoch nicht in einem TRichEdit. Dort kann der Font ja innerhalb jeder Zeile mehrfach wechseln. Gibt es eine Funktion, die die Zeilenlänge eines RTF-Textes errechnet?

Vielen Dank!
Frank
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: RichEdit scrollen verhindern

  Alt 26. Apr 2015, 12:29
Gibt es eine Funktion, die die Zeilenlänge eines RTF-Textes errechnet?
Nennt sich Programmieren.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.368 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: RichEdit scrollen verhindern

  Alt 27. Apr 2015, 07:33
Ich würde es über CaretPos versuchen.
Zumindest gibt es das bei TRichEdit. Ich gehe davon aus, dass es das dann auch bei TJvRichEdit gibt.

Damit kannst du die aktuelle Eingabe-Position feststellen und (soweit ich mich erinnern kann) auch festlegen.

Was die Breite des Eingabe-Bereichs betrifft, habe ich in einer Anwendung mal die Größe des TRichEdit genauso groß gemacht, wie in dem zugehörigen Report. Dadurch könnte man den automatischen Word-Wrap für das Problem nutzen. Das wird aber etwas tückisch, wenn die Anwender mit unterschiedlichen Skalierungen arbeiten. In dem Fall musst du das TRichEdit ein wenig umrechnen. Die Scrollbars müssen bei der Größenberechnung ebenfalls berücksichtigt werden. Aber vielleicht kannst du es dir leicht machen und die Komponente einfach grundsätzlich etwas kleiner machen, als den nutzbaren Bereich des Etiketts.

Source kann ich leider nicht zur Verfügung stellen. Aber vielleicht hilft das ja als Ansatz für deine Umsetzung.
Peter
  Mit Zitat antworten Zitat
fsch

Registriert seit: 30. Apr 2010
5 Beiträge
 
#4

AW: RichEdit scrollen verhindern

  Alt 1. Mai 2015, 15:05
Ich habe das Problem jetzt so gelöst:

Das automatische Scrollen kann ich verhindern, indem ich in der Windows-Funktion EM_SETOPTIONS die Optionen ECO_AUTOVSCROLL und ECO_AUTOHSCROLL lösche. Dies mache ich im OnCreate der übergeordneten Fensters mittels SendMessage.

Weiterhin markiere ich im OnChange des RichEdit jede Zeile rot, die länger ist, als das RichEdit breit ist. Das ermittle ich über die Funtion GetCharPos() von TJvRichEdit (dies ist die gekapselte Windows-Funktion EM_POSFROMCHAR).

Und wenn zu viele Zeilen eingegeben wurden, wird der Hindergrund des kompletten RichEdits eingefärbt (ebenfalls über GetCharPos() plus die Zeilenhöhe der letzten Zeile).

Mal sehen, ob sich das in der Praxis so bewährt...

Nochmal vielen Dank für eure Hilfe.
  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 13:26 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