EditorGadget - Sonderzeichen werden nicht korrekt angezeigt

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

EditorGadget - Sonderzeichen werden nicht korrekt angezeigt

Beitrag von Velindos »

Hallo Leute,

Sonderzeichen werden im Editor nicht korrekt angezeigt, wenn Sie aus einem String eingelesen werden!
So kennen wir den „Riverdale“-Star gar nicht. (was so viel wie „Baumwollburg“ bedeutet)
Hat einer eine Idee, was sich im EditorGadget geändert hat seit den Stand PB 5.60, da ging es noch?

Code: Alles auswählen

If OpenWindow(0, 0, 0, 540, 260, "PB 5.70 LTS Richedit Unicode EditorGadget", #PB_Window_SystemMenu |  #PB_Window_ScreenCentered)
  EditorGadget(0, 5, 5, 530, 250)
  
  Global Notiz$
  Global a$ = ""
  
  a$ + "{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\fswiss\fprq2\fcharset0 Segoe WP SemiLight;}}"
  a$ + "{\colortbl ;\red0\green128\blue128;\red51\green51\blue51;}"
  a$ + "{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\cf1\f0\fs20 So kennen wir den \'84Riverdale\ldblquote -Star gar nicht. \cf2\f1 (was so viel wie \'84Baumwollburg\ldblquote  bedeutet)\cf1\f0\par"
  a$ + "\cf1\ul\b\i\fs28 APPNAME é à ç è ê"
  a$ + "}"
  
  ; Next 4 lines enable Unicode Support
  
  ; Code in Memory
  *mem = AllocateMemory(StringByteLength(a$) + 1)
  ; *mem = AllocateMemory(StringByteLength(a$, #PB_Ascii) + 1)
  ; *mem = AllocateMemory(StringByteLength(a$, #PB_UTF8) + 1)
  ; *mem = AllocateMemory(StringByteLength(a$,#PB_Unicode   ) + 2)
  
  ; Schreibt einen String 
  ; PokeS(*mem, a$, -1, #PB_Ascii)
  ; PokeS(*mem, a$, -1, #PB_UTF8)
  ; PokeS(*mem, a$, -1, #PB_Unicode)
  PokeS(*mem, a$, -1)
  
  ; Liest einen String 
  SetGadgetText(0,PeekS(*mem))
  
  ; Notiz$ = PeekS(*mem)
  ; SetGadgetText(0,Notiz$)
  
  ; Memory Free
  FreeMemory(*mem)
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von mk-soft »

Habe es wieder gefunden ...

Link: https://www.purebasic.fr/english/viewto ... 45#p520036

Anpassung wegen Unicode, RTF muss als UTF8 übertragen werden, auch wenn das RichEdit als Unicode verwendet wird.

Code: Alles auswählen

;-TOP

; *****************************************************************************
; AddTextRTF by mk-soft, v1.05, 27.03.2018

CompilerIf #PB_Compiler_Version < 550
  Procedure UTF8(Text.s)
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_UTF8) + 1)
    If *mem
      PokeS(*mem, Text, -1, #PB_UTF8)
    EndIf
    ProcedureReturn *mem
  EndProcedure
CompilerEndIf

Procedure AddTextRTF(Gadget, Text.s , NewLine=#False)
  If Left(Text, 5) <> "{\rtf"
    Text = "{\rtf " + Text + "}"
  EndIf
  If NewLine
    Text = Left(Text, Len(text) - 1) + "\line}" 
  EndIf
  CompilerIf #PB_Compiler_Unicode
    Protected hEdit = GadgetID(Gadget)
    Protected ndx = GetWindowTextLength_(hEdit)
    Protected *szBuffer = UTF8(Text)
    SendMessage_(hEdit, #EM_SETSEL, ndx, ndx)
    SendMessage_(hEdit, #EM_REPLACESEL, 0, *szBuffer)
    FreeMemory(*szBuffer)
  CompilerElse
    AddGadgetItem(Gadget, -1 , Text)
  CompilerEndIf
EndProcedure

; *****************************************************************************

If OpenWindow(0, 0, 0, 540, 260, "PB 5.70 LTS Richedit Unicode EditorGadget", #PB_Window_SystemMenu |  #PB_Window_ScreenCentered)
  EditorGadget(0, 5, 5, 530, 250)
  
  Global Notiz$
  Global a$ = ""
  
  a$ + "{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\fswiss\fprq2\fcharset0 Segoe WP SemiLight;}}"
  a$ + "{\colortbl ;\red0\green128\blue128;\red51\green51\blue51;}"
  a$ + "{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\cf1\f0\fs20 So kennen wir den \'84Riverdale\ldblquote -Star gar nicht. \cf2\f1 (was so viel wie \'84Baumwollburg\ldblquote  bedeutet)\cf1\f0\par"
  a$ + "\cf1\ul\b\i\fs28 APPNAME é à ç è ê"
  a$ + "}"
  
  AddTextRTF(0, a$)
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von Velindos »

Hallo mk-soft,

Danke, du hast mich gerettet! Funzt einfach Genial im PB5.50 und PB 5.72 Beta und PB 5.72 LTS!

Nun ist es bei mir so, das ich den Inhalt an ein anders Gadget übergebe und zurück. Dh. ist das Auslesen des Gadget für mich und meine Database wichtig!

Hier das Beispiel, natürlich mit Deiner Lösung integriert!
Gibt es noch was verbesserungswürdiges im Code?

Code: Alles auswählen

; Richtext von Gadget zu Gadget über String Variable
; https://www.purebasic.fr/german/viewtopic.php?f=16&t=31968
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EnableExplicit
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Enumeration
  #Edt_Win
  #Edt_Source
  #Edt_Target
  #Edt_Btn
EndEnumeration
;-TOP
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  Global Notiz$ = ""
  Global NNotiz$ = ""
  Global EditorGadget_RawRichText$
  
  Notiz$ + "{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\fswiss\fprq2\fcharset0 Segoe WP SemiLight;}}"
  Notiz$ + "{\colortbl ;\red0\green128\blue128;\red51\green51\blue51;}"
  Notiz$ + "{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\cf1\f0\fs20 So kennen wir den \'84Riverdale\ldblquote -Star gar nicht. \cf2\f1 (was so viel wie \'84Baumwollburg\ldblquote  bedeutet)\cf1\f0\par"
  Notiz$ + "\cf1\ul\b\i\fs28 APPNAME é à ç è ê"
  Notiz$ + "}"
; *****************************************************************************
; Richtext_To_Gadget by mk-soft, v1.05, 27.03.2018
CompilerIf #PB_Compiler_Version < 550
  ; -------------------------------
  Procedure UTF8(Text.s)
    ; -------------------------------
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_UTF8) + 1)
    ; -------------------------------
    If *mem
      PokeS(*mem, Text, -1, #PB_UTF8)
    EndIf
    ; -------------------------------
    ProcedureReturn *mem
    ; -------------------------------
  EndProcedure
  ; -------------------------------
CompilerEndIf
Procedure Richtext_To_Gadget(Gadget, Text.s , NewLine=#False)
  ; -------------------------------
  If Left(Text, 5) <> "{\rtf"
    Text = "{\rtf " + Text + "}"
  EndIf
  ; -------------------------------
  If NewLine
    Text = Left(Text, Len(text) - 1) + "\line}"
  EndIf
  ; -------------------------------
  CompilerIf #PB_Compiler_Unicode
    ; -------------------------------
    Protected hEdit = GadgetID(Gadget)
    Protected ndx = GetWindowTextLength_(hEdit)
    Protected *szBuffer = UTF8(Text)
    ; -------------------------------
    SendMessage_(hEdit, #EM_SETSEL, ndx, ndx)
    SendMessage_(hEdit, #EM_REPLACESEL, 0, *szBuffer)
    FreeMemory(*szBuffer)
    ; -------------------------------
  CompilerElse
    ; -------------------------------
    AddGadgetItem(Gadget, -1 , Text)
    ; -------------------------------
  CompilerEndIf
  ; -------------------------------
EndProcedure
Procedure Richtext_From_Callback(dwCookie, pbBuff, cb, pcb)
  If cb
    ;{ Liest einen String von der angegebenen Speicheradresse. 
    EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Ascii)
    ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Unicode)
    ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb,#PB_UTF16 )
    ;}
  EndIf
  pcb=cb
EndProcedure
Procedure.s Richtext_From_Gadget(gad)
  EditorGadget_RawRichText$=""
  Protected str.EDITSTREAM\dwCookie=0
  str\dwError=0
  str\pfnCallback = @Richtext_From_Callback()
  SendMessage_(GadgetID(gad),#EM_STREAMOUT,#SF_RTF,@str)
  ProcedureReturn EditorGadget_RawRichText$
EndProcedure
; *****************************************************************************
OpenWindow(#Edt_Win,0,0,300,330,"RTF Insert",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(#Edt_Win))
EditorGadget(#Edt_Source,5,5,290,145,#PB_Editor_WordWrap)
EditorGadget(#Edt_Target,5,150,290,145,#PB_Editor_WordWrap)
ButtonGadget(#Edt_Btn,5,300,200,20,"Gadget1 => Gadget2")
  
Richtext_To_Gadget(#Edt_Source, Notiz$)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow: End
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Edt_Btn
          NNOTIZ$ = Richtext_From_Gadget(#Edt_Source)
          Richtext_To_Gadget(#Edt_Target,NNOTIZ$)
      EndSelect
  EndSelect
ForEver
Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von mk-soft »

Habe bei mir doch noch ein Bug gefunden.

RTF ist doch kein UTF8, sondern ASCII.
Code angepasst, sonst haut es nicht mit den Sonderzeichen "@€" etc nicht hin.

Code: Alles auswählen

; Richtext von Gadget zu Gadget über String Variable
; https://www.purebasic.fr/german/viewtopic.php?f=16&t=31968
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EnableExplicit
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Enumeration
  #Edt_Win
  #Edt_Source
  #Edt_Target
  #Edt_Btn
EndEnumeration
;-TOP
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  Global Notiz$ = ""
  Global NNotiz$ = ""
  Global EditorGadget_RawRichText$
  
  Notiz$ + "{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\fswiss\fprq2\fcharset0 Segoe WP SemiLight;}}"
  Notiz$ + "{\colortbl ;\red0\green128\blue128;\red51\green51\blue51;}"
  Notiz$ + "{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\cf1\f0\fs20 So kennen wir den \'84Riverdale\ldblquote -Star gar nicht. \cf2\f1 (was so viel wie \'84Baumwollburg\ldblquote  bedeutet)\cf1\f0\par"
  Notiz$ + "\cf1\ul\b\i\fs28 APPNAME é à ç è ê @ €"
  Notiz$ + "}"
; *****************************************************************************
; Richtext_To_Gadget by mk-soft, v1.05, 27.03.2018
CompilerIf #PB_Compiler_Version < 550
  ; -------------------------------
  Procedure UTF8(Text.s)
    ; -------------------------------
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_UTF8) + 1)
    ; -------------------------------
    If *mem
      PokeS(*mem, Text, -1, #PB_UTF8)
    EndIf
    ; -------------------------------
    ProcedureReturn *mem
    ; -------------------------------
  EndProcedure
  ; -------------------------------
  Procedure Ascii(Text.s)
    ; -------------------------------
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_Ascii) + 1)
    ; -------------------------------
    If *mem
      PokeS(*mem, Text, -1, #PB_Ascii)
    EndIf
    ; -------------------------------
    ProcedureReturn *mem
    ; -------------------------------
  EndProcedure
  ; -------------------------------
CompilerEndIf
Procedure Richtext_To_Gadget(Gadget, Text.s , NewLine=#False)
  ; -------------------------------
  If Left(Text, 5) <> "{\rtf"
    Text = "{\rtf " + Text + "}"
  EndIf
  ; -------------------------------
  If NewLine
    Text = Left(Text, Len(text) - 1) + "\line}"
  EndIf
  ; -------------------------------
  CompilerIf #PB_Compiler_Unicode
    ; -------------------------------
    Protected hEdit = GadgetID(Gadget)
    Protected ndx = GetWindowTextLength_(hEdit)
    Protected *szBuffer = Ascii(Text)
    ; -------------------------------
    SendMessage_(hEdit, #EM_SETSEL, ndx, ndx)
    SendMessage_(hEdit, #EM_REPLACESEL, 0, *szBuffer)
    FreeMemory(*szBuffer)
    ; -------------------------------
  CompilerElse
    ; -------------------------------
    AddGadgetItem(Gadget, -1 , Text)
    ; -------------------------------
  CompilerEndIf
  ; -------------------------------
EndProcedure
Procedure Richtext_From_Callback(dwCookie, pbBuff, cb, pcb)
  If cb
    ;{ Liest einen String von der angegebenen Speicheradresse. 
    EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Ascii)
    ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Unicode)
    ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb,#PB_UTF16 )
    ;}
  EndIf
  pcb=cb
EndProcedure
Procedure.s Richtext_From_Gadget(gad)
  EditorGadget_RawRichText$=""
  Protected str.EDITSTREAM\dwCookie=0
  str\dwError=0
  str\pfnCallback = @Richtext_From_Callback()
  SendMessage_(GadgetID(gad),#EM_STREAMOUT,#SF_RTF,@str)
  ProcedureReturn EditorGadget_RawRichText$
EndProcedure
; *****************************************************************************
OpenWindow(#Edt_Win,0,0,300,330,"RTF Insert",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(#Edt_Win))
EditorGadget(#Edt_Source,5,5,290,145,#PB_Editor_WordWrap)
EditorGadget(#Edt_Target,5,150,290,145,#PB_Editor_WordWrap)
ButtonGadget(#Edt_Btn,5,300,200,20,"Gadget1 => Gadget2")
  
Richtext_To_Gadget(#Edt_Source, Notiz$)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow: End
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Edt_Btn
          NNOTIZ$ = Richtext_From_Gadget(#Edt_Source)
          Richtext_To_Gadget(#Edt_Target,NNOTIZ$)
      EndSelect
  EndSelect
ForEver
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von Velindos »

Hallo mk-soft,

werde die Sache in meinen Velindos einbauen und checken wie das mit der Base funktioniert!

Nochmals besten DANK!

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von Velindos »

Hallo,
habe die Sache mal in meinen Velindos integriert, komme jedoch nur auf das Ergebnis
(was so viel wie „Baumwollburg“ bedeutet)
.

Übergebe die Sache an die Base mit
SQL + "Notiz='" + NOTIZ$ + "',"
Obwohl es nun im Gadget funktioniert! Liegt das nun an der SQLite Base, oder muss die Base geändert werden...

Code: Alles auswählen

; Richtext von Gadget zu Gadget über String Variable
; https://www.purebasic.fr/german/viewtopic.php?f=16&t=31968

; https://www.msn.com/de-de/reisen/artikel/diese-fantastischen-naturfotos-werden-sie-aufmuntern/ss-BB12m50z?li=BBqfWMM#image=6
; (was so viel wie „Baumwollburg“ bedeutet)
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EnableExplicit
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Enumeration
;   Edt_Win
;   Edt_Source
;   Edt_Target
;   Edt_Btn
EndEnumeration

  Global Edt_Win
  Global Edt_Source
  Global Edt_Target
  Global Edt_Btn

;-TOP
;- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  Global Notiz$ = ""
  Global NNotiz$ = ""
  Global EditorGadget_RawRichText$
 
  Notiz$ + "{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Verdana;}{\f1\fswiss\fprq2\fcharset0 Segoe WP SemiLight;}}"
  Notiz$ + "{\colortbl ;\red0\green128\blue128;\red51\green51\blue51;}"
  Notiz$ + "{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\cf1\f0\fs20 So kennen wir den \'84Riverdale\ldblquote -Star gar nicht. \cf2\f1 (was so viel wie \'84Baumwollburg\ldblquote  bedeutet)\cf1\f0\par"
  Notiz$ + "\cf1\ul\b\i\fs28 APPNAME é à ç è ê"
  Notiz$ + "\line@ۇ}"
; *****************************************************************************
; RTF_To_Gadget by mk-soft, v1.05, 27.03.2018
CompilerIf #PB_Compiler_Version < 550
  ; -------------------------------
  Procedure UTF8(Text.s)
    ; -------------------------------
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_UTF8) + 1)
    ; -------------------------------
    If *mem
      PokeS(*mem, Text, -1, #PB_UTF8)
    EndIf
    ; -------------------------------
    ProcedureReturn *mem
    ; -------------------------------
  EndProcedure
  ; -------------------------------
  Procedure Ascii(Text.s)
    ; -------------------------------
    Protected *mem = AllocateMemory(StringByteLength(Text, #PB_Ascii) + 1)
    ; -------------------------------
    If *mem
      PokeS(*mem, Text, -1, #PB_Ascii)
    EndIf
    ; -------------------------------
    ProcedureReturn *mem
    ; -------------------------------
  EndProcedure
  ; -------------------------------
CompilerEndIf
Procedure RTF_To_Gadget(Gadget, Text.s , NewLine=#False)
; -------------------------------
  If Left(Text, 5) <> "{\rtf"
    Text = "{\rtf " + Text + "}"
  EndIf
  ; -------------------------------
  If NewLine
    Text = Left(Text, Len(text) - 1) + "\line}"
  EndIf
  ; -------------------------------
  CompilerIf #PB_Compiler_Unicode
    ; -------------------------------
    Protected hEdit     = GadgetID(Gadget)
    Protected ndx       = GetWindowTextLength_(hEdit)
    Protected *szBuffer = Ascii(Text)
    ; -------------------------------
    SendMessage_(hEdit, #EM_SETSEL, ndx, ndx)
    SendMessage_(hEdit, #EM_REPLACESEL, 0, *szBuffer)
    ; -------------------------------
    FreeMemory(*szBuffer)
    ; -------------------------------
  CompilerElse
    ; -------------------------------
    AddGadgetItem(Gadget, -1 , Text)
   ; -------------------------------
  CompilerEndIf
  ; -------------------------------
EndProcedure
Procedure RTF_From_Gadget_CB(dwCookie, pbBuff, cb, pcb)
  If cb
    CompilerIf #PB_Compiler_Unicode
      ; -------------------------------
      EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_UTF8)
      ; -------------------------------
    CompilerElse
      ; -------------------------------
      ;{ Liest einen String von der angegebenen Speicheradresse.
      EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Ascii)
      ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb ,#PB_Unicode)
      ; EditorGadget_RawRichText$ + PeekS(pbBuff, cb,#PB_UTF16 )
      ;}
      ; -------------------------------
    CompilerEndIf
    ; -------------------------------
  EndIf
  pcb=cb
EndProcedure
Procedure.s RTF_From_Gadget(gad)
  ; -------------------------------
  ReplaceString(GetGadgetText(gad), "'", "''",#PB_String_InPlace )
  ; -------------------------------
  EditorGadget_RawRichText$=""
  ; -------------------------------
  Protected str.EDITSTREAM\dwCookie=0
  ; -------------------------------
  str\dwError=0
  str\pfnCallback = @RTF_From_Gadget_CB()
  ; -------------------------------
  SendMessage_(GadgetID(gad),#EM_STREAMOUT,#SF_RTF,@str)
  ; -------------------------------
;   SetGadgetText(gad,"")
  ; -------------------------------
  ProcedureReturn EditorGadget_RawRichText$
EndProcedure
; *****************************************************************************
Edt_Win = OpenWindow(#PB_Any,0,0,300,330,"RTF Insert",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(Edt_Win))
Edt_Source = EditorGadget(#PB_Any,5,5,290,145,#PB_Editor_WordWrap)
Edt_Target = EditorGadget(#PB_Any,5,150,290,145,#PB_Editor_WordWrap)
Edt_Btn = ButtonGadget(#PB_Any,5,300,200,20,"Gadget1 => Gadget2")
 
RTF_To_Gadget(Edt_Source, Notiz$)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow: End
    Case #PB_Event_Gadget
      Select EventGadget()
        Case Edt_Btn
          NNOTIZ$ = RTF_From_Gadget(Edt_Source)
          
          RTF_To_Gadget(Edt_Target,NNOTIZ$)
      EndSelect
  EndSelect
ForEver
Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von mk-soft »

Warum liest du den RTF Stream (Callback) als UTF8?
RTF ist ist ASCII
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: EditorGadget - Sonderzeichen werden nicht korrekt angeze

Beitrag von Velindos »

Hallo mk-soft,

war wohl ein Kurzschluss, Danke!

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten