Wollte mal mein Richtext auf UTF8 umstellen. Nun läuft das Kopieren/Einfügen des Text laut Forum. Aber ReplaceString geht nicht mehr! Hat jemand einen Tip?
Code: Alles auswählen
; RichEdit in UTF8 betreiben
Enumeration
#Window
#Work_Stichwort
#Work_Notiz
#Zoom_Stichwort
#Zoom_Button
#Work_TextModus
#Zoom_EditorGadget
#Work_EditorlKlick
#Work_ClearButton
#Zoom_StringButton
#Zoom_EditorlKlick
#Work_TextVorlage
#Zoom_EditorLinie
#Work_EditorLinie
;RichText Variables
#RichLibrary ;RichText Variables
#WM_SETTEXT = 12 ;RichText Variables
#SF_RTF = 2 ;RichText Variables
#EM_STREAMOUT = 1098 ;RichText Variables
EndEnumeration
;PB4
Fensterueberschrift$ = "RTF-Kopieren Einfügen Auslesen"
Global Notiz.s ;Notiz String
Global EinfuegeString.s
Global KleineLinie$ ="----------------------------------------------"
Global GrosseLinie$ = "-------------------------------------------------------------------------------------------"
Global Richtext.s
Richtext = "{\rtf1\ansi\ansicpg1252\deff0\deflang3082{\fonttbl{\f0\fswiss\fcharset0 Verdana;}}"
Richtext + "{\colortbl ;\red255\green102\blue0;\red128\green128\blue128;}"
Richtext + "\viewkind4\uc1\pard\qc\f0\fs20\par"
Richtext + "\cf1\ul\b\i\fs28 APPNAME \cf2\fs20\par"
Richtext + "\cf0\ulnone\b0\i0\par"
Richtext + "\cf2 Aplicaci\'f3 d'extracci\'f3 de proves\par"
Richtext + "\par"
Richtext + "\cf2 Copyright 2010 - \b Company \b0 S.A.\par"
Richtext + "\cf2 Avda. Meridian 183\par"
Richtext + "\cf2 08516 - Barcelona\par"
Richtext + "----------------------------------------------\par"
Richtext + "\par"
Richtext + "\cf2 Tel: 934 764 xxx - Fax: 938 545 xxx\par"
Richtext + "\par"
Richtext + "\cf2 web: http://www.company.es * mail: company@company.es\par"
Richtext + "\par"
Richtext + "\cf2 Informaci\'f3 d'Activaci\'f3: XXXX-XXXX-XXXX\par"
Richtext + "}"
; ************* BEGIN RichText Variables *************
Prototype SendMessage(hwnd,msg,wParam,lParam)
OpenLibrary(#RichLibrary,"User32.dll")
Global SendMessage_.SendMessage = GetFunction(#RichLibrary,"SendMessageA")
CompilerIf Defined(EDITSTREAM,#PB_Structure) = 0
Structure EDITSTREAM
dwCookie.l
dwError.l
pfnCallback.l
EndStructure
CompilerEndIf
Procedure StreamOut(dwCookie,pbBuff,cb,*pcb)
SetGadgetText(dwCookie,PeekS(pbBuff))
Notiz = PeekS(pbBuff) ; der ausgelesene RTF-Code
EndProcedure
; ************* END RichText Variables *************
; ************* Mainprogram *************
Global FontID1
FontID1 = LoadFont(1, "Courier", 10) ; Font f<r die Darstellung
If OpenWindow(#Window, 0, 0,667, 732, Fensterueberschrift$, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowColor(#Window,RGB(100, 150, 100))
ButtonGadget(#Work_TextVorlage, 1, 5, 351, 20, "TEXT ins Gadget einfügen")
ButtonGadget(#Work_EditorlKlick, 355, 5, 310, 20, "Kopieren ins untere Gadget")
StringGadget(#Work_Stichwort, 1, 30, 351, 20,"Stichwort")
ButtonGadget(#Work_ClearButton, 353, 30, 100, 20, "Gadget Clear")
ButtonGadget(#Work_TextModus, 567, 30, 100, 20, "Gadget CLIP")
ButtonGadget(#Work_EditorLinie, 2, 55, 20, 20, "L")
EditorGadget(#Work_Notiz, 2, 80, 351, 289, #PB_Editor_WordWrap) ;#PB_Editor_ReadOnly
SetGadgetFont(#Work_Notiz, FontID1)
ButtonGadget(#Zoom_EditorlKlick, 352, 372, 310, 20, "Kopieren ins obere Gadget")
StringGadget(#Zoom_Stichwort, 1, 394, 351, 20,"")
ButtonGadget(#Zoom_StringButton, 353, 394, 100, 20, "Gadget Clear")
ButtonGadget(#Zoom_EditorLinie, 2, 417, 20, 20, "L")
EditorGadget(#Zoom_EditorGadget, 2, 440, 660, 289, #PB_Editor_WordWrap);#PB_Editor_ReadOnly
SetGadgetFont(#Zoom_EditorGadget, FontID1)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #Work_TextVorlage
*mem = AllocateMemory(StringByteLength(Richtext, #PB_UTF8) + 1)
PokeS(*mem, Richtext, -1, #PB_UTF8)
SetGadgetText(#Work_Notiz, PeekS(*mem))
FreeMemory(*mem)
SetGadgetText(#Work_Stichwort, "Stichwort @üÄÖ€")
Case #Work_TextModus
If ClipModus = 0
ResizeGadget(#Work_Notiz, 2, 80, 660, 289) ; TextModus Editorfeld 2, 368, 351, 289
Notiz = ReplaceString(Notiz,KleineLinie$, GrosseLinie$) ; Kleine auf Grosse Linie
ClipModus = 1
Else
ResizeGadget(#Work_Notiz, 2, 80, 351, 289) ; TextModus Editorfeld 2, 368, 351, 289
Notiz=ReplaceString(Notiz,GrosseLinie$,KleineLinie$ ) ; Kleine auf Grosse Linie
ClipModus = 0
EndIf
Case #Zoom_StringButton
SetGadgetText(#Zoom_Stichwort, "")
SetGadgetText(#Zoom_EditorGadget, "")
Case #Work_ClearButton
SetGadgetText(#Work_Stichwort, "")
SetGadgetText(#Work_Notiz, "")
Case #Work_EditorLinie
EinfuegeString = Chr(13)+KleineLinie$ +Chr(13)
SendMessage_(GadgetID(#Work_Notiz),#EM_REPLACESEL,1,@EinfuegeString)
Case #Zoom_EditorLinie
EinfuegeString = Chr(13)+GrosseLinie$ +Chr(13)
SendMessage_(GadgetID(#Zoom_EditorGadget),#EM_REPLACESEL,1,@EinfuegeString)
Case #Zoom_EditorlKlick
SetGadgetText(#Work_Stichwort, GetGadgetText(#Zoom_Stichwort))
; Richtext aus Gadget lesen und auf Notiz schreiben
Stream.EDITSTREAM
Stream\dwCookie = 2
Stream\pfnCallback = @StreamOut()
SendMessage_(GadgetID(#Zoom_EditorGadget), #EM_STREAMOUT, #SF_RTF, @Stream)
; Richtext ins Gadget schreiben
Debug "RTF-Code: "+ Notiz ; der ausgelesene RTF-Code
Notiz = ReplaceString(Notiz, GrosseLinie$, KleineLinie$) ; Kleine auf Grosse Linie
SetGadgetText(#Work_Notiz, Notiz)
Case #Work_EditorlKlick
SetGadgetText(#Zoom_Stichwort, GetGadgetText(#Work_Stichwort))
; Richtext aus Gadget lesen und auf Notiz schreiben
Stream.EDITSTREAM
Stream\dwCookie = 2
Stream\pfnCallback = @StreamOut()
SendMessage_(GadgetID(#Work_Notiz), #EM_STREAMOUT, #SF_RTF, @Stream)
; Richtext ins Gadget schreiben
Debug "RTF-Code: "+ Notiz ; der ausgelesene RTF-Code
Notiz = ReplaceString(Notiz, KleineLinie$, GrosseLinie$) ; Kleine auf Grosse Linie
SetGadgetText(#Zoom_EditorGadget, Notiz)
EndSelect
EndSelect
ForEver
EndIf ; Open Window
End