Seite 1 von 2
Welches Gadget zum Text editieren?
Verfasst: 15.02.2007 12:12
von Kukulkan
Hallo,
Ich benötige für meine Anwendung ein Gadget zum Text editieren (Benutzer muss Nachrichten schreiben). Dabei sollte es einfaches HTML oder RTF verwenden können und unter Linux und Windows funktionieren.
Ich muss folgendes haben:
- Wordwrap bei der Eingabe und Anzeige
- Fettschrift, Unterstrichen und Kursiv
- Textfarbe änderbar
- Schriftfarbe, Schriftgrösse und Font im Text änderbar
- Unicode-Support
Was ich nicht brauche sind Tabellen, Bilder, eingebettete Controls, CSS, SyntaxHighlighting oder sowas.
In VB kann das schon seit VB4 das RichText-Control (seit 11 Jahren!). Leider finde ich unter PB nix. Das Editor-Gadget macht nichtmal Wordwrap bei der Eingabe. Und Windows-API kann ich nicht verwenden (muss ja auch unter Linux gehen).
Ist denn kein PB Gadget in der Lage so eine Funktionalität zu bieten? Oder bin ich nur Blind? Das kann doch sonst so ziemlich jede Programmiersprache (.NET, VB4,5,6, RealBasic, Gambas etc. können das alle).
Irgendwelche Tipps (ausser selber machen)?
Volker
Verfasst: 15.02.2007 12:20
von ts-soft
Scintilla steht unter linux nativ zur Verfügung, für Windows gibts eine UserLib:
http://www.purebasic.fr/english/viewtop ... illagadget
Syntax ist nicht 100% kompatibel, kann Dir für Linux eine Include-Datei
geben, so das es gleich funktionieren sollte!
Gruß
Thomas
Verfasst: 15.02.2007 12:35
von Kiffi
ts-soft hat geschrieben:Scintilla
kann man denn in Scintilla für einzelne Textbereiche unterschiedliche
Zeichensätze und Schriftgrößen einstellen? Ich dachte, das geht nur für das
gesamte Text-Dokument.
Grüße ... Kiffi
Verfasst: 15.02.2007 12:38
von ts-soft
Kiffi hat geschrieben:ts-soft hat geschrieben:Scintilla
kann man denn in Scintilla für einzelne Textbereiche unterschiedliche
Zeichensätze und Schriftgrößen einstellen? Ich dachte, das geht nur für das
gesamte Text-Dokument.
Grüße ... Kiffi
Nein, so gut wie alle Möglichkeiten vom RTF sind auch vorhanden, sogar
WordWrap (SCI_SETWRAPMODE(id, 1) glaube ich.
Hab die Include für Linux mal hochgeladen, diese für Linux, die bei der
UserLib für Windows, so sind nur kleiner Anpassungen für beide Versionen
nötig (bei der Erstellung, sowie des Callbacks, der Rest ist gleich)
http://ts-soft.eu/dl/scilexer_linux.zip
Verfasst: 15.02.2007 12:49
von Kiffi
ts-soft hat geschrieben:Nein, so gut wie alle Möglichkeiten vom RTF sind auch vorhanden,
ah, gut! Danke für die Info!
Grüße ... Kiffi
Verfasst: 15.02.2007 13:13
von Kukulkan
Hallo,
Vielen Dank erstmal. Aber wenn ich das richtig sehe, dann muss ich eine DLL zusätzlich ausliefern? Dann wäre mein Programm kein
Standalone Executable mehr...
Und aktuell laufen die Tools noch mit PB3.94. Um Ehrlich zu sein habe ich mit Userlibs immer ein Problem:
- Ich mache mich voll vom Ersteller der Userlib abhängig. Nicht selten sind das hier Schüler oder Studenten. Für eine kommerzielle Anwendung ist das nicht akzeptierbar...
- Ich habe oft keinen Code (zugegeben, bei OpenSouce library's ist das nicht so). Wenn ich schnell was ändern muss (zB Bugfixes) habe ich ohne Source keine Chance...
- Userlibs gibt es (fast) nur für Windows. Für Linux gibt es nur ganz wenig. Portierbarkeit ist dann nur ein frommer Wunsch...
Ich werd die Programme erst auf PB4 umsetzen (dann mach ich auch die Linux-Version) wenn PB4 definitiv sauber auf Linux läuft. Aktuell sind mir das noch viel zu viele Bugmeldungen im Forum.
Bleibt nur, ein eigenes Eingabe-Control aus ImageGadget und Drawing-Befehlen zu erstellen??? Und das, wo man ohne API nichtmal zuverlässig alle Tastatureingaben verarbeiten kann...
(Manchmal frage ich mich ob PB die richtige Wahl war)
Volker
Verfasst: 15.02.2007 13:13
von ts-soft
Ehe ich es vergesse, formatiert speichern geht nicht!
Verfasst: 15.02.2007 13:18
von ts-soft
Volker Schmid hat geschrieben:Hallo,
Vielen Dank erstmal. Aber wenn ich das richtig sehe, dann muss ich eine DLL zusätzlich ausliefern? Dann wäre mein Programm kein Standalone Executable mehr...
Nein, die Scintilla Lib unter Linux braucht keine DLL und die UserLib von
obigen Link auch nicht. Aber die WindowsVersion funktioniert erst ab PB4.
Basiert auf den orginalen Scintilla Sourcen, kannste gerne haben, läßt sich
mit VS2003 kompilieren, danach sind noch kleine Nacharbeiten (erstellen der
Userlib aus der statischen Lib) und fertig.
Die Linux-Version gehört zu PB, dazu hab ich keine Sourcen

Verfasst: 15.02.2007 13:42
von Kukulkan
Hallo,
Danke für die Tipps und das Angebot mit dem Source. Aber damit wird das Projekt nur schwerer wartbar. Ich hab gehofft das so ein Control zu PB gehört und ich es nur übersehen hab. Habe früher viel mit VB6 gemacht und bin wohl sehr verwöhnt
Ich werd das mit den formatierten Nachrichten erstmal verschieben... Ich stelle die Tools später erstmal so auf PB4 um.
Eventuell hat bis dahin ja mal jemand einen kleinen Text-Editor als portierbares Include programmiert der wenigstens die nötigsten Dinge kann (Wordwrap, leichte Formatierungen wie Bold/Kursiv/Underline und Ein-Ausgabe als HTML oder RichText).
Danke,
Volker
Verfasst: 15.02.2007 13:51
von AND51
Ich wollte einen Tipp geben, weil folgendes gesagt wurde:
> so sind nur kleiner Anpassungen für beide Versionen nötig (bei der Erstellung, sowie des Callbacks, der Rest ist gleich)
und
> Syntax ist nicht 100% kompatibel
Dafür gibt es doch CompilerIf, und CompilerElse