Zur Info: Da die komplette Weiterverarbietung in (schlankem, plattformunabhängigem) Ascii erfolgt, soll keine unicode-exe, sondern eine normale-exe erstellt werden.
Für die Sonderzeichen (Buchstaben mit Dach) gibt es eine Ersatzschreibweise z.B. statt alpuŝiĝi wird alpu^si^gi verwendet.
Was mich freut ist, dass man auch mit der DemoVersion mit RTF zumindest schon mal alpuŝiĝi in ein EditotGadget schreiben kann. Schön wäre, wenn ich es auch wieder auslesen könnte, um Texte mit Sonderzeichen, die jemand einkopiert, auch zu verarbeiten. Wenn es nicht geht, dann muss man halt die Ersatzschreibweise eintippen.
Doch nun genug der Vorrede.
Die erste Frage vielleicht: Was ist API? (wo gibt es eine für Anfänger simple Erklärung?)
Zweite Frage: Wenn in einem EditorGadget Zeichen stehen, so sind sie doch sicherlich irgendwo auch in einem Speicherbereich abgelegt. Kommt man da nur mit API heran oder gibt es dafür auch eine Möglichkeit mit Peek?
Hier nochmal mein Code, der bei Buttondruck, den Text auslesen und kompieren soll. Mit GetGadgetText gehen ja leider die Überzeichen verloren.
Code: Alles auswählen
;PB4
; ************* Variables *************
Fensterueberschrift$ = "Unicode-Test"
Button_1 = 20 ; Button-ID
Global FontID1
FontID1 = LoadFont(1, "Courier", 10) ; Font für die Darstellung
;RTF- Test
text$="{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fswiss\fprq2\fcharset0 Arial;}}"
text$=text$ + "{\colortbl ;\red0\green0\blue0;}"
text$=text$ + "\viewkind4\uc1\pard\ltrpar\cf1\f0\fs20 Unicode: \u264?\u284?\u292?\u308?\u348?\u364?\u265?\u285?\u293?\u309?\u349?\u365?\cf0\f1\par "
text$=text$ + "}"
; ************* Mainprogram *************
If OpenWindow(0, 1, 1, 800, 350, Fensterueberschrift$, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
SetWindowColor(0,RGB(100, 150, 100))
CreateGadgetList(WindowID(0))
EditorGadget(1, 20, 50, 650, 110) ;#PB_Editor_ReadOnly
SetGadgetFont(1, FontID1)
EditorGadget(2, 20, 160, 650, 110);#PB_Editor_ReadOnly
SetGadgetFont(2, FontID1)
ButtonGadget(Button_1, 650+25, 130, 100, 20, "Copy")
SetGadgetText(1, text$)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case Button_1
text_eingabe$ = GetGadgetText(1) ; Funktioniert aber ohne Sonderzeichen
SetGadgetText(2, text_eingabe$) ; Funktioniert aber ohne Sonderzeichen
EndSelect
EndSelect
ForEver
EndIf ; Open Window
End