TBeRichEditEx
TBeRichEditEx
Die Klasse TBeRichEditEx kapselt Funktionen für das Markieren und Austauschen/Einfügen von Text in einem RichEdit.
Eigenschaften
Eigenschaft | Beschreibung |
---|---|
AllowSelection:L | (default) True = Text kann selektiert werden |
CBHighLightStrings:C | Strings die farblich hervorgehoben werden sollen |
ScrollBars:N | (default) ssBoth = Scrollbalken sowohl vertikal als auch horizontal |
SelAll:L | True = Selektiert den ganzen Text |
SelLength:N | Länge der Selektion |
SelStart:N | Anfangsposition der Selektion |
SelText:C | Aktuell selektierter Text |
Text | Rtf-Text, wenn die Eigenschaft 'TextOnly' auf False gesetzt ist |
TextOnly:L | Text wird frei von jeglicher Formatierung dargestellt |
ToolbarVisible:L | (default) False = Toolbar zum Formatieren des Textes wird nicht angezeigt |
Funktionen
Funktion | Parameter | Beschreibung |
---|---|---|
CBFormatSelectedText Selektierten Text formatieren | aProperties:U | Ein Array mit 7 Elementen |
CBGetCurrentWord():C Gibt das Wort an der aktuellen Cursorposition innerhalb eines RichEdits zurück. | ||
CBSelectCurrentWord():C Selektiert das Wort bei der aktuellen Cursorposition in einem RichEdit. | ||
CBInsertTextAtWord():L Fügt einen übergebenen Text an der aktuellen Cursorposition in einem RichEdit ein. | aText:C | Einzufügender Text |
Beispiel
| oDAB065:DB:= 'waDAB065' |
//******************************************************************************
// Zur Verwendung auf der Memo-Maske
// Ermittelt das aktuelle Wort im Text und ersetzt dieses durch einen Textbaustein
//******************************************************************************
// @Param: aSender = Instanz des Controls das die Funktion aufruft
// (z.B. CodeblockButton -> SELF)
// aTable = Tabellen-Objekt (z.B. DAB065),
// aFieldName = Memo-Feld-Name (z.B. 'MEMO')
// bReplaceCurrentWord = das aktuelle Wort durch den Textbaustein erstezen
// sonst wird der Textbaustein dirket an der Cursor-
// Position eingefügt
// @Result: null
//******************************************************************************
function InsertTextblockAtCurrentWord(oOwner, oTable, cFieldName, bReplaceCurrentWord)
| oRichMemo, oInsertField, cCurrentWord, cTextBlock |
startseq,
// Feld ermitteln
oInsertField := DBField(cFieldName, oTable),
// Zugehöriges RichView ermitteln
oRichMemo := FindFieldComponent(GetOwner(oOwner), oInsertField, 'TComponent'),
if not empty(oRichMemo) then
// Aktuelles Wort am Cursor ermitteln
cCurrentWord := oRichMemo.CBGetCurrentWord() ,
if not empty(cCurrentWord) then
// Textbaustein für Wort ermitteln (DAB350)
cTextBlock := Lookup(waDAB350, 'DAB351', <code>"AUTOTEXT_" + Upper(cCurrentWord)</code>, "MEMO", ""),
if not empty(RTFToText(cTextBlock)) then
// ggf Wort selektiern
if bReplaceCurrentWord then
oRichMemo.CBSelectCurrentWord(),
endif,
// Aktuelles Wort durch Textbaustein ersetzen
oRichMemo.CBInsertTextAtWord(cTextBlock),
else
StatusError('Kein Textbaustein für "' + cCurrentWord + '" gefunden!'),
endif,
endif,
endif,
onerror,
// Fehler ignorieren
writeln(GetErrorText()),
MessageDlg('Fehler' + crlf + crlf + GetErrorText() , mtError ),
stopseq,
end,
InsertTextblockAtCurrentWord(Self, oDab065, 'MEMO', True)