Hallo,
ich habe RichEdit entdeckt und finde den Beispiel RichEdit_Example.pb klasse.
Ich wollte es erweitern mit den Funktion Table einfügen.
Leider komme ich nicht weiter.
1) Beim Einfügen eine Table kommt die Daten als Text ("{\par \ ...")
2) die Button OK/Abbrechen funktionieren nicht.
Ich habe in icons Table.ico hinzugefügt
Alle Änderungen in RichEdit.pbi und RichEdit_Example.pb mit den Kommentar ADD markiert.
Die source habe ich als zip im T-Com CLOUD abgelegt.
https://www.magentacloud.de/lnk/lBATrQBs
Passwort: MmF834
Wer kann mich dabei helfen?
Danke und Gruß MarcelX
RichEdit mit table
RichEdit mit table
Win-10, PB 5.31 (Windows - x86)
Re: RichEdit mit table
Das problem ist Unicode, habe aber nicht weiter in Dein Code geschaut...
Das Control "Editorgadget (RichEdit)" verwendet jetzt auch Unicode.
Möchte man aber RTF Steuersequenzen verwenden, müssen diese als UTF8 zum Gadget übermittelt werden.
Das Control erkennt dieses und Interpretiert die Steuersequenzen.
SetGadgetText verwendet aber immer Unicode (PB v5.6x)
Siehe Beitrag http://www.purebasic.fr/english/viewtop ... 30#p519943
Hilfscode v1.05
Das Control "Editorgadget (RichEdit)" verwendet jetzt auch Unicode.
Möchte man aber RTF Steuersequenzen verwenden, müssen diese als UTF8 zum Gadget übermittelt werden.
Das Control erkennt dieses und Interpretiert die Steuersequenzen.
SetGadgetText verwendet aber immer Unicode (PB v5.6x)
Siehe Beitrag http://www.purebasic.fr/english/viewtop ... 30#p519943
Hilfscode v1.05
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
; *****************************************************************************
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: RichEdit mit table
mit den Implementierung von table gebe ich auf .
Das einfügen ist eine Sache, dazu kämme die Möglichkeit den eingefügte table zu ändern, was schwieriger wäre.
Es hat trotzdem Spaß gemacht und ich habe was neues gelernt (Module, Interface).
Gruß
MarcelX
Das einfügen ist eine Sache, dazu kämme die Möglichkeit den eingefügte table zu ändern, was schwieriger wäre.
Es hat trotzdem Spaß gemacht und ich habe was neues gelernt (Module, Interface).
Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)