Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unsichtbares RichEdit? (https://www.delphipraxis.net/156098-unsichtbares-richedit.html)

Memnarch 19. Nov 2010 16:27


Unsichtbares RichEdit?
 
Nabend.
Ich habe folgendes problem:

Es nervt mich, wenn ich schreibe, dass es beim TRichedit dazu kommen kann, dass die gerade zu editierende zeile flackert(einfach mal nen buchstaben gedrückt halten und sausen lassen, am besten auf nem richedit in wordgrösse).

So, nun dachte ich mir...wie kriege ich DBuffered hin? Geht ja nicht bei Richedit.
Inzwischen habe ich es geschafft den kompletten Inhalt korrekt in eine Bitmnap zu packen, die Nutze ich in einem TImage, ergo ist die Darstellung flickerfrei.

Neues Problem:
Ich möchte das Richedit immernoch editieren können. Am besten wäre es, wenn es Unsichtbar über dem TImage liegen könnte, sodass die Kontrolle vom RichEdit ausgeht(draufklicken etc), während auf dem TImage gezeichnet wird.

Und genau da hänge ich fest v.v
Habe mal von einer Unsichtbaren Richedit komponennte gehört, die auf Befehle (klicken etc) reagiert, aber selbst zusammenschrauben muss.

Jemand eine Idee?

MFG
Memnarch

Matze 19. Nov 2010 16:44

AW: Unsichtbares RichEdit?
 
Hallo,

habe ich es richtig verstanden, du möchtest in einem RichEdit schrieben, den Text in ein Bitmap umwandeln und über ein TImage anzeigen anstelle das RichEdit zur Anzeige zu verwenden, doch Editieren soll weiterhin möglich sein? :freak:
Ich stelle mir das sehr kompliziert vor, wenn ein unsichtbares RichEdit über einem Image liegt und du "live" ein Bitmap daraus erstellst samt entstehenden Zeilenumbrüchen etc. und die Pixel der Buchstaben exakt mit denen eines darüberliegenden RichEdits übereinstimmen müssen. Vom Scrollen ganz zu schweigen.

Edit: Aber du hast recht, das flackert unerträglich.

himitsu 19. Nov 2010 18:03

AW: Unsichtbares RichEdit?
 
Gut, optimaler wäre es natürlich, wenn man das RichEdit vom Flackern befreit.

Also, du müßtest einfach nur alle Messages des Bitmap (abgesehn von den "zeichne dich neu"-Messages) abfangen und an das Richedit weiterleiten.

vergessen 19. Nov 2010 18:36

AW: Unsichtbares RichEdit?
 
Zitat:

Zitat von himitsu (Beitrag 1062634)
Gut, optimaler

"Optimaler" als optimal könnte ich mir superoptimal oder megaoptimal vorstellen!

http://de.wikipedia.org/wiki/Optimal

Und manche der von himitsu optimierten Problemlösungen finde ich einfach nur superhypermegateraoptimal:

Statt gut lesbar/verständlichem Pascal-Code verpfuscht er es hin und wieder zu fast kryptischem C.

Von welchen 1024er-Wettbewerb (für Quellcode-Eindampfung) wird himitsu geritten?


@himitsu: Danke für die Köder statt des Fischs!

toms 19. Nov 2010 18:43

AW: Unsichtbares RichEdit?
 
Zitat:

Zitat von himitsu (Beitrag 1062634)
Gut, optimaler wäre es natürlich, wenn man das RichEdit vom Flackern befreit.

Nimm eine Richedit Komponente, welche Rich Edit >= 2.0 verwendet, z.B. TJvRichEdit.

Memnarch 20. Nov 2010 15:04

AW: Unsichtbares RichEdit?
 
Falls ich mich etwa sunklar ausgedrückt hatte:

Die Darstellung auf der Bitmap klappt bereits einwandfrei ;)
Gibts viele hilfestellungen im Inet....nur muss ich halt die Steuerung beim Richedit bewaren v.v

TImage als Display -> Klappt perfect
TRichedit irgendwie weiterhin als Input nehmen während es unsichtbar überm TImage liegt -> joar..problem

EDIT:
Über Perform liefert RIchedit nämlich selbst die möglichkeit seinen Text so wies im richedit dargestellt ist, woanders abzubilden.
Und per PaintTo des Richedit, bekomtm man auch gleich das komplette design noch mit ;) (Optisch ist mein TImage also nicht mehr vom Richedit zu unterscheiden)

EDIT2:
Vom isnatllieren von Drittkomponennten wolle cih eigentlichabsehen, da es sich um den Computer an meinem Ausbildungsplatz handelt ;)

Luckie 20. Nov 2010 15:17

AW: Unsichtbares RichEdit?
 
Und du glaubst die Performance ist auch bei längeren Texten gegeben? Das wage ich zu bezweifeln.

Memnarch 24. Nov 2010 09:03

AW: Unsichtbares RichEdit?
 
Okay...ich habe es mir viel zu kompliziert gemacht^^".

Ich habe jetzt einfach die WMEraseBkgnd prozedur überschrieben. So kann der Hintergrund des TRichedits nicht mehr gelöscht werden. Beim neuzeichnen wurde zuerst sonst der Inhalt gelöscht und dan neu gezeichnet, ich zeichne einfach nurnoch neu.
Hat das flickern entfernt, und konnte bisher dadurch keine Nachteile feststellen.


MFG
Memnarch


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz