Tooltips in FAQ.Net beachten Programm oder Navigation in RTF-Dokumenten, ohne die Dokumente selbst zu ändern

Einleitung


Häufig erfolgt die Navigation von Dokumenten in Notizenanwendungen in Form von Links (Links), die der Benutzer manuell in jedem Dokument erstellt. Aber was ist, wenn Sie die Keyword-Navigation ausführen, ohne eindeutige Links im Dokument zu verwenden?

Die Aufgabe, die ich mir bei der Verbesserung der Funktionalität des FAQ.Net-Programms gestellt habe, bestand darin, einen praktischen Mechanismus zum Navigieren in RTF-Dokumenten in der FAQ.Net-Anwendung zu erstellen.

Infolgedessen hat FAQ.Net Version 2.7 eine QuickInfo-Funktion mit benutzerdefinierten Schlüsselwörtern und deren Definition erhalten.

Was sind ihre Vorteile und Nutzen im Notes-Programm und wie man sie einsetzt, werde ich im Rahmen dieses Artikels kurz beschreiben.



Möglichkeiten zum Erstellen der Navigation in RTF-Dokumenten mithilfe der Standard-RichTextBox-Komponente


  1. Lesezeichen verwenden
    Im RTF-Standard ist ein Lesezeichen-Mechanismus integriert, aber die Standard-RichTextBox-Komponente unterstützt den Betrieb der Elemente bkmkstart und bkmkend nicht.
  2. Deaktivieren Sie die DetectUrls-Eigenschaft und erstellen Sie Ihre eigenen Links.
    Diese Methode wird im Artikel Links mit beliebigem Text in einer RichTextBox beschrieben . In diesem Fall müssen Sie Code hinzufügen, um die URLs zu ermitteln und alle Links wiederherzustellen, wenn Sie ein RTF-Dokument öffnen. Ich dachte, dass dies zeitaufwändig ist und die Geschwindigkeit der Anwendung etwas verringern wird.
  3. Tooltips
    Nach den beiden oben beschriebenen Methoden habe ich einen Artikel über QuickInfos in der RichTextBox [WinForms] -Komponente RichTextBox ToolTip wie Visual-Studios gelesen . Diese Option wurde zugrunde gelegt.

Tooltips Aufgabenliste


In der Idee mit Tooltips erkannte ich das Potenzial für das gewünschte Ergebnis und begann es zu realisieren. Sie mussten lediglich die QuickInfo-Komponente erweitern und Verknüpfungen mit Übergängen hinzufügen. Da es im riesigen Internet keine fertige Lösung gab, habe ich den Code selbst entwickelt.

Liste der zu erledigenden Aufgaben:

  1. Organisation der Speicherung von Schlüsselwörtern (Hinweisen) mit Links
  2. Implementieren Sie die Funktion zum Ermitteln eines Wortes, wenn Sie den Mauszeiger darüber halten
  3. Erstellen Sie eine Schnittstelle zum Erstellen und Bearbeiten eines „Wörterbuchs mit Eingabeaufforderungen“ (siehe Beschreibung unten).
  4. Erstellen Sie die Möglichkeit, mithilfe des "Hinweiswörterbuchs" schnell Schlüsselwörter in einem RTF-Dokument zu erstellen.
  5. Die Tooltip-Funktionalität muss erweiterbar sein

Artikeldetails


  1. Schlüsselwörter werden in der SQLite-Datenbank gespeichert. Skript zur Tabellenerstellung:

    CREATE TABLE word_tooltip ( id_content INTEGER NOT NULL, /*  id_content=0,      */ word VARCHAR NOT NULL, /* ,     */ tooltip_type INTEGER NOT NULL, /*   : 0 -     , 1 -    -, 2 -   */ comment VARCHAR NOT NULL, /*   */ url_adr VARCHAR NULL, /* URL- */ group_name VARCHAR NULL, /*       */ fore_color VARCHAR NULL, /*   */ create_date DATETIME DEFAULT (CURRENT_TIMESTAMP), modif_date DATETIME, PRIMARY KEY (id_content, word) ) 
  2. Die Funktion zum Ermitteln eines Wortes, wenn Sie den Mauszeiger darüber halten, wird mithilfe der Standardfunktionen der RichTextBox-Komponente ausgeführt: GetPositionFromCharIndex und GetCharIndexFromPosition.

    Symbole, durch die der Anfang oder das Ende eines Wortes bestimmt wird:

     ',',';',':','!','?','%','+','=','*','$','\'','\"','<','>','^','(',')','[',']','{','}','°','&','|',' ','\n','"','\t' 
  3. "QuickInfo-Wörterbuch" - das habe ich als Bereich bezeichnet, in dem alle vom Benutzer erstellten Wörter angezeigt und bearbeitet werden. In diesem Bereich müssen QuickInfos angezeigt werden, wenn Sie den Mauszeiger über ein RTF-Dokument halten. Panel "Dictionary of tips" besteht aus:
    - Steuertasten: Erstellen, Bearbeiten, Kopieren und Löschen.
    - Suchleiste
    - baumähnliche Worttafeln (TreeView)
    - Bearbeitungsfelder
  4. Das Erstellen von Wörtern im "Wörterbuch der Eingabeaufforderungen" erfolgt durch Drücken von Strg + Leertaste. Wenn Sie den Cursor in die Mitte eines Wortes setzen, wird beim Aufrufen von Strg + Leertaste der Wortfilter automatisch auf den Wortfilter im Hilfewörterbuch am Anfang des Wortes vor dem Cursor gesetzt. Wenn Sie ein Wort auswählen (Eingabe oder Doppelklick), wird das gesamte Wort durch das ausgewählte Wort ersetzt. Wenn Sie Buchstaben auf der Tastatur drücken, wird dem Benutzer ein Filterwort oben in der Wortauswahlkomponente angezeigt. Um die Arbeit mit dem Wörterbuch zu vereinfachen, wird in der gefilterten Liste ein Hinweis angezeigt, wenn Sie den Mauszeiger über ein Wort bewegen.






  5. Die Erweiterung der Tooltip-Funktionalität befindet sich im Feld tooltip_type INTEGER NOT NULL. Arten von Tooltips:

    • mit Verweis auf den Hinweis (internes RTF-Dokument). Es wird nur die ID der Notiz (Frage) angezeigt. Wenn Sie den Mauszeiger über ein Wort halten, wird der Name der Notiz als Hinweis angezeigt.
    • mit Bezug auf die Internet-Ressource. Die URL und der Hinweistext werden bereitgestellt.
    • statischer Hinweis. Es wird nur der Hinweistext angezeigt.


Vorteile


  1. Speicherung und Änderung von Schlüsselwörtern mit Links in strukturierter Form (Tabelle)
  2. Navigation durch RTF-Dokumente, ohne die Dokumente selbst zu ändern
  3. die Fähigkeit, Wörter (IntelliSense) aus einem vom Benutzer definierten Wörterbuch automatisch zu vervollständigen
  4. Schnelle Erstellung und Änderung von Links in allen Dokumenten, in denen es ein Schlüsselwort gibt

Nachteile


  1. Das Problem mit RTF-Tabellen. Leider hat die Standard-RichTextBox-Komponente einen Nachteil bei der Anzeige von Tabellen. Um diesen Nachteil zu beseitigen, wird die Bibliothek Msftedit.dll verwendet, die Fehler in die Funktionen GetPositionFromCharIndex und GetCharIndexFromPosition einführt. Ich weiß noch nicht, wie ich mit diesem Problem umgehen soll, aber ich hoffe, dass eine Lösung gefunden wird. In dieser Hinsicht empfehle ich in der Version von FAQ.Net 2.7 nicht, Tooltips in und nach RTF-Tabellen zu verwenden.
  2. Die Morphologie von Wörtern, d.h. Jedes Wort muss mit einem neuen Hinweis dupliziert werden.

Was wird sich in der FAQ.Net-Anwendung weiter verbessern?


  1. Die Funktion zum Importieren / Exportieren eines Wörterbuchs mit Tipps wird hinzugefügt
  2. Sie können Tags zu Notizen hinzufügen. Darüber hinaus wird die Möglichkeit hinzugefügt, Ihr Wörterbuch mit Tipps für Tags einzugeben.
    Beispiel: Erstellen Sie ein C # -Tag, und erstellen Sie Stichwörter mit der gewünschten Farbe. Erstellen Sie anschließend eine Syntaxhervorhebungsfunktion für das ausgewählte Fragment. Auf diese Weise kann der Benutzer seine Wörter eingeben und seine hervorgehobenen Wörter definieren.

Fazit


Im Allgemeinen gefällt mir die Funktionalität sehr gut. Ich glaube, dass das Ziel, in RTF-Dokumenten innerhalb der FAQ.Net- Anwendung zu navigieren , erreicht wurde.
Im persönlichen Gebrauch behalte ich als Übersetzer Tooltips, die mir beim Lernen und Erinnern an neue Fremdwörter helfen.
Sie können Tipps für Abkürzungen einfach im Wörterbuch speichern und anzeigen.
Das Wörterbuch ist praktisch, um Links zu Artikeln aus dem Internet zu speichern und einen kurzen Kommentar beizufügen.

Angehängte Artikellinks


Videopräsentation von Tooltips in FAQ.Net
Detaillierte Beschreibung der Anwendung FAQ.Net
VK Gruppe

Laden Sie die Windows-Anwendung FAQ.Net (kostenlos) herunter:
(x64) yadi.sk/d/sq3g4NOD3Zt7ZY
(x86) yadi.sk/d/NKXeyUWH3Zt8PQ

Source: https://habr.com/ru/post/de479350/


All Articles