[Module] EditorEx (Custom Editor Gadget)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Update:
  • Module komplett überarbeitet (Selektion/Cursor-Handling)
  • DPI - konform
Möglicherweise gibt es noch versteckte Probleme mit DPI, die ich noch nicht entdeckt habe.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Nachdem der Cursor immer wieder mal ein gewisses Eigenleben entwickelt hat, verfolge ich nun einen neuen Ansatz und habe das Modul komplett überarbeitet.
Anstatt des Text mittel Wordwrap in Zeilen zu zerlegen, arbeite ich nun mit "virtuellen" Zeilen, d.h. diese sind nur noch eine Position mit einer bestimmten Länge im Textstring.
Zudem wird der Text nicht mehr zeilenweise, sondern wortweise gezeichnet, was eine nahtlose Integration von WordWarp, Silbentrennung und Syntaxhighlightning erlaubt.
Nachdem ich vor einiger Zeit über die "Damerau-Levenshtein-Distanz" gestolpert bin, gibt es nun auch Korrekturvorschläge für falsch geschriebene Wörter.

Update:
  • Neu: Komplett überarbeitet mit neuem Ansatz für das Texthandling
  • Added: Korrekturvorschläge für Rechtschreibprüfung (Rechtsklick auf falsches (rotes) Wort)
  • Added: Doppelklick rechts: Rechtschreibprüfung für dieses Wort und ggf. Korrekturvorschläge
  • Added: CountItems()
  • Bugfix: SetText()
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Update:
  • Vereinfachungen und Optimierungen
  • Automatische Rechtschreibkontrolle ist jetzt unabhängig von SyntaxHighlighting
  • Laden der Trennmuster aktiviert die Silbentrennung
  • Weiches Trennzeichen überschreibt Silbentrennung des Wortes
  • Das Hinzufügen eines Wortes (incl. Farbe) aktiviert das SyntaxHighlighting
  • EnableAutoSpellCheck() aktiviert Rechtschreibkontrolle als Voreinstellung für alle Gadgets
  • Rechter Doppelklick durch linken Doppelklick (Wort selektieren) & Rechtsklick (Korrekturvorschläge) ersetzt
  • Bugfix: SyntaxHighlighting von getrennten Wörtern
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von matbal »

Ich habe den Editor gerade kurz getestet.

Der Editor scrollt nicht weit genug, wenn ich in der untersten Zeile bin und Return drück. Von der Zeile, in der der Cursor dann steht, ist nur die obere Hälfte zu sehen.

Wenn ich Fließtext schreibe und der Editor automatische Umbrüche am Zeilenende einfügt, verschwindet irgendwann der Cursor komplett aus dem sichtbaren Bereich des Editors.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Bugfixes

@matbal
Wenn ich Fließtext schreibe und der Editor automatische Umbrüche am Zeilenende einfügt, verschwindet irgendwann der Cursor komplett aus dem sichtbaren Bereich des Editors.
Konnte ich bisher nicht reproduzieren. Kannst du genauer beschreiben, wann das passiert?
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von matbal »

Das Verhalten hat sich gegenüber meiner zuletzt getesteten Version geändert. Wenn ganz am Ende des Textes Return gedrückt wird, springt der Editor zum Textanfang.

So lässt sich der Fehler bei mir reproduzieren:

Zuerst Text mit STRG-A und Delete löschen. Zeilen durchnummerieren mit 1, Return, 2, Return, 3, Return, ...
Bei Return wird immer der Textanfang gezeigt.

Das lässt sich auch mit dem vorgegebenen Text zeigen:
Schreibcursor ans Textende setzen. Das geht nicht direkt. Der Cursor lässt sich nur vor dem Punkt setzen und muß dann mit Pfeil Rechts hinter den Punkt bewegt werden.
Jetzt Return drücken, und es wird der Textanfang gezeigt.

Du scheinst irgendwie mit dem letzten Zeilenumbruch zu tricksen.
- Text löschen -> Cursor steht in der ersten Zeile
- Return -> Cursor steht in zweiter Zeile
- Pfeil hoch -> Cursor steht in erster Zeile
- Pfeil runter -> geht nicht, Cursor bleibt oben
Wenn ich jetzt scheibe, ist alles OK. Es wird scheinbar ein unsichtbarer Zeilenumbruch vor sich hergeschoben.

- Pfeil rechts -> Cursor geht eine Zeile runter, und hier kommt es wieder zu dem beschriebenen Fehler.

---

Den Fehler mit dem Fließtext habe ich unabhängig davon immer noch. Voraussetzung, ich bin in der letzten Zeile. Schreibe ich jetzt einen langen Text, springt der Cursor irgendwann in die nächste Zeile. Der Editor sollte jetzt eine Zeile runter scrollen, damit man sie komplett sieht. Das passiert aber nicht. Beim nächsten automatischen Umbruch sieht man den Cursor gar nicht mehr.

Getestet habe deine Version vom 6.10.2019 unter Windows 10 mit PB5.71 32 bit.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Bugfixes

Das Problem ist, dass es für das Zeilenende zwei mögliche Cursorpostionen gibt, obwohl es im Text immer die gleiche Position ist (virtuelle Zeilen!).

Kannst du bitte nochmal testen, welche Fehler verschwunden sind und welche immer noch existieren.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von matbal »

Der Editor springt jetzt nach einem Return nicht mehr zum Textanfang zurück.

Allerdings ist das Verhalten nicht identisch mit dem echten Editor und auch nicht vorhersehbar. (aber nicht wirklich störend)

Ich setze den Cursor an das Textende
- Return -> Neue leere Zeile
- Pfeil hoch -> wie erwartet wieder auf alter Zeile
- Pfeil runter -> Cursor springt ans Ende der Zeile. Die neue Zeile ist weg.

Wenn ich jetzt das selbe wiederhole, funktioniert es, wie erwartet.
- Return -> Neue leere Zeile
- Pfeil hoch -> auf alter Zeile
- Pfeil runter -> auf neuer Zeile

-----

Ein neuer Fehler mit dem Zeilenumbruch: Setzte ich den Cursor an ein Absatzende und drückt Return, wird eine neue Zeile eingefügt. Der Cursor springt manchmal aber eine Zeile zu weit. (Z.B. Hinter "Affenschar." den Cursor setzen und Return drücken) Das scheint aber wirklich zufällig zu sein.

-----

Bei Fließtext scrollt der Text bei mir immer noch nicht mit dem Schreibcursor mit. Bei langen Absätzen rutscht der Cursor unten raus.
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von Thorsten1867 »

Update

Ich habe die Zeichen- und Scrollroutinen komplett überarbeitet und neu organisiert.
Die Berechnungen und das Zeichnen des Textes sind nun voneinander getrennt, damit dazwischen der Offset für das Scrollen berechnet werden kann.
Das sollte auch die Häufigkeit des Neuzeichnens reduzieren.

@matbal
Jetzt kannst du es nochmal testen. Ich hoffe, es haben sich keine neuen Fehler eingeschlichen.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
matbal
Beiträge: 246
Registriert: 30.03.2011 20:53

Re: [Module] EditorEx (Custom Editor Gadget)

Beitrag von matbal »

Der erste Test zeigt: Schreiben von Fließtext funktioniert jetzt gut.

Das Steuern des Cursors mit den Pfeiltasten funktioniert korrekt.



Und diese Fehler sind mit aufgefallen:

1. Wenn ich den Cursor mit der Maus an ein Absatzende setze und weiterschreibe, passiert es unter Umständen, daß der Cursor in die Folgezeile springt. Beispiel: Ich setze den Cursor hinter dem Punkt nach "Affenschar" und tippe ein Leerzeichen.
Herausgefunden hab ich, daß es davon abhängt, wie weit rechts vom Punkt ich geklickt habe. Wenn ich zuweit rechts neben dem Punkt geklickt habe, landet das Leerzeichen eine Zeile zu tief.

2. Beim Markieren wird in jeder Zeile nur das letzte Wort hervorgehoben. Das ist nur grafisch. Mit der Entferntaste wird alles entfernt, was ich markiert hatte.

3. Kopiere ich den Text vom oberen Editor und füge ihn in deinen Editor ein, kommt es zu grafischen Fehlern.
Text aus deinem Editor läßt sich dagegen fehlerlos einfügen.
Antworten