Autor Thema: Mit GetSelectedText Text verändern: Was machen bei doppelt vorkommenden Wörtern?  (Gelesen 4034 mal)

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 99
Moin,

folgender Fall:

In einer Maske ist ein Textfeld und über die Aktionsleiste gibt es die Möglichkeit den Text in dem Textfeld zu verändern.

Bsp:
Der Text im Textfeld lautet:

Für das erste minderjährige anspruchsberechtigte Schulkind einer Familie sind monatlich 11,20 € und
für das zweite anspruchberechtigte minderjährige Schulkind einer Familie sind monatlich 6,00 € zu zahlen.


Nun markiert man z.B. das Wort "Schulkind"im Satz (für das zweite anspruchberechtigte minderjährige Schulkind einer Familie sind monatlich 6,00 € zu zahlen.). Vor und nach diesem Wort soll nun etwas eingefügt werden. Das Problem ist, dass ja zuvor in dem Text bereits einmal Schulkind steht und daher mit meinem bisherigen Code das erste Schulkind verändert wird.

   
Code
       Dim ws As New Notesuiworkspace
Dim uidoc As NotesUIDocument
Dim SText As String
Dim Text As String
Set uidoc = ws.CurrentDocument
SText = uidoc.GetSelectedText("Textbausteintext")
Text = uidoc.FieldGetText("Textbausteintext")
If Text ="" Then
Msgbox "Fehler: Kein Text markiert!"
Exit Sub
End If
Text = Left(Text,Instr(Text,SText)-1) & { </fett*>} & Fulltrim(SText) & {<*fett/> }  & Right(Text,Len(Text)-(Instr(Text,SText) - 1 + Len(SText)))
Call uidoc.FieldSetText("Textbausteintext",Text)

Gibt es eine Möglichkeit die Position der Markierung noch über etwas anderes als GetSelectedText zu bestimmten? Oder hat jmd eine andere Idee? Vielen Dank schonmal.

Thorsten
« Letzte Änderung: 09.09.11 - 10:54:48 von Schnubbel »
Client -> Release 11.0.1FP6
Betriebssystem ->Windows 10
User-> Thorsten :)

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Hallo Thorsten,

die gesuchte Funktion heißt uidoc.InsertText() und könnte bei Dir in etwa so eingesetzt werden:

Code
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim tmp As String
Set uidoc = ws.CurrentDocument
tmp = uidoc.GetSelectedText("")
Call uidoc.InsertText(" ********* " + tmp + " ************ ")

Die Sternchen musst Du natürlich noch anpassen - aber damit wird der aktuell markierte Bereich mit dem neuen Text überschrieben.

Gruß

André

Offline Schnubbel

  • Junior Mitglied
  • **
  • Beiträge: 99
Danke schon @ André.
Das war genau das was ich gebraucht hab! :D
Client -> Release 11.0.1FP6
Betriebssystem ->Windows 10
User-> Thorsten :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz