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)