Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   RichEdit Während Eingabe überprüfen (https://www.delphipraxis.net/167137-richedit-waehrend-eingabe-ueberpruefen.html)

fgp 14. Mär 2012 21:16

RichEdit Während Eingabe überprüfen
 
Hallo,

ich habe eine ziemliche Anfängerfrage, vermute ich:
In ein RichEdit wird vom User Text eingegeben, der direkt bei Eingabe (also OnChange-Ereignis) auf verschiedene Zeichen überprüft werden soll.

Beispiel: Der User gibt "**Überschrift**" ein und nach der Eingabe dieser Zeichenkette verschwinden die "**" und der Text wird fett gedruckt und unterstrichen ("*Text*" -> nur fett usw..).

Meine Frage ist, wie das Ganze performativ am besten funktioniert?
Ich bin nur bis zu einer Volltextsuche im OnChange-Ereignis gekommen und kann
mir natürlich vorstellen, wie umständlich und langwierig das bei langen Texten ist.

Also, wie kann ich nur das letzte, eingegebene Wort auf diese Zeichen untersuchen und nicht das gesamte RichEdit?

Beste Grüße,
Franz

Popov 14. Mär 2012 21:26

AW: RichEdit Während Eingabe überprüfen
 
Du kannst die aktuelle Lines Zeile untersuchen.

Bevor du nachhackst, hier zwei Funktionen:

Delphi-Quellcode:
function CurLine(Memo: TCustomMemo): Longint;
begin
  with Memo do Result := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
end;

function CurCol(Memo: TCustomMemo): Longint;
begin
  with Memo do Result := SelStart - SendMessage(Handle, EM_LINEINDEX, CurLine(Memo), 0);
end;
Die erste gibt dir die aktuelle Zeile, die zweite die Position des Cursors in der Zeile.

fgp 15. Mär 2012 15:32

AW: RichEdit Während Eingabe überprüfen
 
Danke, das bringt mich sehr viel weiter!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 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