Umfassende Editor Komponente erstellen

Rund um die LCL und andere Komponenten
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Umfassende Editor Komponente erstellen

Beitrag von pluto »

Hallo,
ich mache mal ein neuen Thread zum Thema auf. Weil ich habe ein Entwicklung Plan erstellt.
Denn ich hier einfügen möchte. Wenn jemand was dagegen hat kann monta ja diesen Beitrag zum anderen hinzufügen bzw. anfügen. Hier der Plan. Ich hoffe einer von euch list ihn durch
und postet seine Meinung oder Verbesserung oder Erweiterung Vorschläge !
Entwicklungs Plan für die Editor Komponente !

Phase 1:

1.1
Die Kompoente sollte von TCustum Control abgeleitet werden.
und sollte ein TPanel und ein TScrollbox benutzen.
Das Panel zum anzeigen und die TScrollbox zum Scrollen.

1.2
Jetzt kommt die Struktur dran. Wie die Daten einzeln gespeichert werden.
Ich habe mich für so eine Struktur entschieden: Siehe Anhang: uplTypes.pas

1.3
Jetzt kommt das Zeichnen Dran.

1.4
Nun kommt ein Cursor ins Spiel. Dazu brauche ich 5 weitere Variablen.
cx,cy > Aktuelle Zeile und Spalte
mcx, mcy > Aktuelle zeichen Position, wird gebraucht wegen dem Maus Klick
CursorChangeStat > Wurde der Curosr jetzt mit der Maus oder Tastertur verwendet ? wurde
der Cursor Überhaupt verändert ?

Beim Zeichnen wird das alles geprüft und der Cursor wird eingezeichnet einfach eine 2 Pixel Breite
Vertikale Linen.

1.5
Jetzt kommt das Markieren ins Spiel, damit habe ich auch immer wieder Probleme.
Einezle Buchstaben zu Markieren ist kein Problem, aber so ein Standard Markierung Verhalten
hinzubekommen.
Ist gar nicht mal so einfach, es soll ja auch noch schnell Markiert werden.

1.6
Methoden einführen um einen Markierten Text auf eine Bestimmte Style zu setzen.
ein Style umfasst bei mir:
bgColor:TColor; // Hintergrund Farbe
fgColor:TColor; // Vordergrund Farbe
font_size:Integer; // Schrift Größe
font_name:String; // Schrift Name
font_style:TFontStyles; // Schrift style z.b. Fett, Kusiv, oder unterstrichen.

1.7
Nun Kommt das wesentliche was neu an meine Idee ist.
Ein Object Besteht aus drei Punkten:
// ein Buchstabe der mit CHR umgewandelt wird.
c:word
// Ist eigentliche nicht umbedingt erfoderlich, aber vereinfacht das ganze sehr.
// ist das Object(Buchstabe) Markiert oder nicht ?
sel:Boolean
// das Aussehen des Buchstaben
Style:TPlTextStyle;

Ändere ich jetzt von einem Markierten Text ein Style z.b. die Vordergrund Farbe wird auf Rot gesetzt:
Wird zu erst in eine Globale Liste geschaut, ob es so ein Style schon gibt. Damit meine ich.
Gibt es schon Rote Buchstaben, aber nur rot. Wenn ja wird zum Object der Pointer gesetzt.

Ist die liste leer wird auto. eingefügt und ein Pointer gesetzt.

Ich gehe davon aus, das die Meisten evlt. Fett nutzen werden,
aber kaum jemand butte Texte machen möchte.
Wenn doch, kann ich ja eine entsprechende Option einführen,
das es keine Globale Liste gibt. bzw. verwendet wird

Aufgrund dieser Anhame finde ich die Idee gar nicht mal so schlecht:
Weniger Speicher verbrauch z.b.

1.8
Editieren von einem Text.
D.h. ich kann den Text mit der Tastertur verändern:
Buchstaben hinzufügen Buchstaben löschen Zwischenablage benutzen.

1.9
Sprungmarken Unterstützung:
über Strg+G+S+zahl oder Buchstabe soll die Cursor Position gespeichert werden
Über Strg+S+zahl oder Buchstabe soll zu einem gespeicherten Cursor Position hin gesprungen werden
Mehrer Kopiere Stellen:
Normalerweise kann ja nur über Strg+C ein Text Markiert und über Strg+V eingefügt werden.
ich möchte noch einen schrift weitergehen:
Kopieren :Strg+c+zahl oder Buchstabe
Ausschneiden :Strg+x+zahl oder Buchstabe
Einfügen : Strg+v+zahl oder Buchstabe
auf diese Art und weise können sich auch zwei oder drei stellen gespeichert werden oder halt auch mehr.

Diese Funktion habe ich erst einmal in meinen Projekte eingebaut vor einigen Jahren.

Phase 2

2.1
Es soll eine vorgefertigt Leiste geben, die mit dieser Komponente verknüpft werden kann.
und andersherum auch. So könnte der Usr einfach diese Leiste Platzieren anpassen und fertig.

2.2
Es sollen mehrer Such Varianten angeboten werden die alle zusammen arbeiten können:
1. Normales Windows suchen. D.h ich rufe ein Such Dialog über Strg+F beispielsweise auf gibt meinen Text ein
und gehe auf suche, dialog verschwindet und ich kann per F3 oder Strg+L(Delphi Variante) weiter suchen.

2. Linux such Variante(Gedit)
Ich gebe meinem Text im Such Dialog ein. Alle gefunden stellen sollen hervorgehoben werden.
(Die Farben können unter den Einstellungs Möglichkeiten Verändert werden)

3. Delphi/Lazarus Variante
Alle gefunden Stellen sollen in einer ListView oder Listbox angezeigt werden.
Dafür soll es auch wieder was Fertig geben, damit das Verknüpft werden kann. So wie bei punkt 2.1.

Es soll jetzt über F3 Weiter gesucht werden können und über F4 soll die zulesetzt gefunden Such stelle
angesprungen werden.

Das Suchdialog sollte folgende möglichkeiten haben:
Checkbox: Groß Kleinschreibung
Checkbox: Als Wort
Checkbox: Nur im Markierten Teil suchen
Checkbox: Ab Cursor Position suchen.
Combobox: alle such Wörter sollen abgespeichert werden.

Das ersetzen soll die gleichen Möglichkeiten habe.

2.3
In dieser Komponente sollen auch Grafiken angezeigt werden oder andere Objekte.
Die dann mit der Maus verschoben werden können.

Andere Objekte währen z.b. GUI-Elemente oder auch Boxen wie im Forum z.b.
ich schreibe eine Dokumentation und möchte ein Soruce-Code einfügen das könnte in einem Entsprechen box
rein. wo dann ein Higleiter ausgewählt werden könnte.

Andere Objekte könnten auch noch Diagramme sein.

2.4
Gatter wie bei den SynEdit Komponente. Ich möchte Links neben der Kompoente eine Leiste haben.
wo z.b. Zeilennummern angezeigt werden könnten oder aber auch Code-Folding.
Oder auch Halte Punkte oder aber user Definierte Leisten für dise Zeile damit dise Zeile
schneller wieder gefunden werden kann.

2.5
Higleiter. Für die Boxen die ich in punkt 2.3 angesprochen habe soll es natürlich eine Vielzahl von
Fertigen higleiter geben.
Jeder Higleiter soll folgende Attribute unterstützten:

Was sind Schlüsselwörter
Was sind Zeichen ketten ?
Was Sind Symbole ?
Was sind Kometare ? gibt es mehrzeilige Kommentare ? wenn ja wie werden sie defniert ?
Wie Werden Proceduren und Funktionen Definiert
Wie soll der Hintergrund da gestellt werden ? soll evlt. ein Hintergrund-Grafik verwendet werden ?
Welche Dateiendungen sind Typisch ?
Wie Heißt die Sprache ?

Welcher Gattung gehört sie an ?
z.b. Konfiguration wie ini oder xml Dateien Script Sprachen wie z.b. HTML, Perl oder PHP
und soweiter
---------------------------
Zu jeder Sprache sollten auch noch ein Paar Infos zusammen getragen werden:
Von Wem wurde sie erstellt ? zu welchen Zweck ?

Für eine Strg+Leertasten Funktion soll es fertige vorsortiere Listen gibt.
z.b. für Object Pascal lazarus Variante: hier sollen alle Proceduren, Funktionen, Klassen, Datentypen rein
und die Information in welcher Unit sie gespeichert wird.

Drücke ich jetzt Strg+Leertaste bei ShowMessage und weiß nicht welche Unit sie rein gehört.
ist es nicht so schlimm. Da die Strg+Leertasten Funktion diese Unit auto. hinzugefügt werden könnte.
Wenn es sie noch nicht gibt.
Wird jetzt F1 gedrückt bei zb. Showmessage soll sich ein Dialog öffnen mit Varianten von ShowMessage und
mit deren Parameter. und der User soll dort jetzt eine Beschreibung eingeben können und ein oder mehrer Beispiele.
Für ein einfaches Hilfe System. Ich hoffe das ich damit eine umfassende Hilfe eines Tages habe.

Zum Higleiter gehört auch wie werden blöcke gebildet ? das ist wichtig für das Code Folding.
Welche Typische Vorlagen für das Aussehen gibt es für diese Sprache ?
Damit meine ich das aussehn. z.b. könnte jetzt jemand das aussehen eines Higleiter verändern und speichert
dies in einer Vorlage ab.

außer dem möchte ich noch eine Strg+J Funktion einfügen. Wo z.b. Fertige Code-Vorlagen eingefügt werden könnten.

Diese Infos sollen jetzt in eine Text Datei gespeichert werden(ini Datei).

2.6
Wenn ein Higleiter richtig erstellt wurde soll es eine Funktion geben.
Die Listen für die Vervollständigung anlegen kann der jeweiligen Sprachen.
Dazu muss natürlich das basses Verzeichnis angeben werden was bei Delphi schonmal schwer sein wird, wenn
man nur die PE Version hat. Bei Lazarus hingehen dürfte das kein Problem werden.

2.7
Din Funktion. Ich möchte verschiedene Papier-Formate unterstützen.
Ob dies eine extra Komponente werden sollte weiß ich noch nicht genau.

Die seiten sollten in Quer und Hochformate angezeigt werden können.

So das damit auch z.b. Bewerbungen geschrieben werden könnte.
und wenn ich ein Text schreibe gleich weiß wie viele Seiten Papier ich hierfür brauche.

2.8
Druck Vorschau.

2.9
Druck Funktion.
Dies soll ein eigenes Dialog werden. Wo ich versuchen werde,
standart Informationen über den Drucker anzuzeigen.
und was alles ausgedruckt werden soll.
z.b. nur der Markierte Teilel ? oder alles ?
in Farbe oder Schwarz weiß ? Boxen in Farbe Drucken ?

Phase 3

3.1
Tabellen. Ich möchte eine Tabelle schaffen die das kann was sie in OpenOffice kann.

3.2
Feldbefehle.
z.b. füge ich ein Datum ein. Bei jedem öffnen wird dieses Datum nach
dem eingestellt Anzeige Formt geändert bzw. auf das heutige gesetzt.

Oder für die Seiten Nummern bzw. Anzahl. z.b. in Kopf oder Fußzeile.

3.3
ich weiß jetzt nicht wie diese Funktion heißt aber ich beschreibe sie mal kurzt.
ich gebe jetzt z.b. so eine Strucktur an.

01 Text
Weiter Text zu 01

02 Text 2
weitere Text zu 02


und soweiter.

3.4
BMP-Font. Wenn ich ein Dokument weiter gebe und dies soll genau so aussehen wie
auf meinem System was ich verwende. könnte ich von einer Schrift einfach
eine BMP-Font erstellen und dann wird BMP-Font verwendet.
Wie eine normale Schrift art. Nur halt das es die jetzt überall gibt.
weil sie zusammen mit dem Text in einer Datei gespeichert wird.

3.5
Speicherformate:
Ein Bin Format. das Alles Unterstütz.
Verschiedene Export und Import Formate z.b. für Word oder OpenOffice.
oder HTML. oder RTF Dateien. Auch PDF Dateien sollen geladen werden können(wenn es erlaubt ist)

3.6
Frames Unterstützung. Für das anzeigen von HTML Dateien z.b.
oder für eine Dokumentation.

3.7
Es soll die neuste Version von HTML unterstützt werden.
evlt. bekomme ich auch die unterstützung von PHP oder Perl irgendwie hin.
oder aber auch Javascript. aber das ist nicht umbedingt mein ziel.
Währe schön wenn es geht. aber nicht schlimm, wenn es nicht geht.

3.8
Mehrer Sprachen sollen unterstützt werden: Deutsch, Englisch, Französisch und soweiter. oder auch
Japanisch.

3.9
Automatischer Zeilenumbruch
Aufzählung Typen
Deutsche Rechtschreibprüfung wie in Firefox
Zeile Hervorhebung für die Aktuelle zeile
User Definierte Zeilen Hervorhebung um z.b. schnell eine bestimmte Zeile wieder zu finden

Wie ihr jetzt sehen könnt bin ich mir im klaren Darüber wie viel Aufwand es
ist so eine Komponente zu entwickeln.

ich hoffe wenn ich Phase 1 oder 2 abgeschlossen habe, das ich von euch evlt. unterstüzung bekomme.
z.b. im erstellen von Higleitern.

So eine Komponente ist schon sehr lange mein wunsch und ich HOFFE das ich es fertig bekomme.
Jeder der mir dabei helfen möchte kann dies tuen:
in dem er Higleiter erstellt wenn es soweit ist.
Vorschläge zum Soruce Code dieser Komponente macht.
Vorschläge zur verwendet Struktur. ich verwende z .b. eine "Doppelt Verkette Liste"

viele meinen zwar eine TList reicht, aber nach einigen versuchen habe ich gemerkt das es doch nicht reicht. Auch wenn es viele nicht glauben wollen. Es ist so. Genauso wie die Erde rund und nicht flach ist.

Edit:
Die Liste ist eigentlich überholt. Ich werde sie mal in laufe Der Zeit einpassen.
Ich habe mir andere Ziele inzwischen gesetzt. Viel einfachere.
Dateianhänge
uplTypes.pas
(1.58 KiB) 84-mal heruntergeladen
Zuletzt geändert von pluto am So 24. Aug 2008, 13:28, insgesamt 1-mal geändert.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

für alle die die auf den Laufenden bleiben wollen. Habe ich ein kleines Screenshot hochgeladen.

Ich bin jetzt soweit:
ich kann Markierte Items ändern. Im Moment wird es noch ohne Liste gemacht.
Da ich noch Probleme habe mit dem Standard Maskierungs Verhalten habe ich das erstmal rauß rauß genommen !

Ich kann jetzt von einem Markierten Text folgende Dinge ändern:
Font Name
Font Style(bis auf durchgestrichen, das geht irgendwie nicht)
Font Size
Font Color
und die Hintergrund Farbe.

Der Nächste Punkt ist, ein Cursor einzubauen.
Den ich mit der Maus und Tastertur steuern kann.
Dateianhänge
1. Bild von meiner Editor Komponente !
1. Bild von meiner Editor Komponente !
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

Ui. Klingt nach einem Mammut-Projekt ;)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja ! Es wird sicherlich seine Zeit brauchen....

Edit. Ich liebe einfach große Projekte ! die eine gewisse herausvordergrund da stellen.
MFG
Michael Springwald

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Beitrag von Euklid »

pluto hat geschrieben: Ich liebe einfach große Projekte
Habe ich schon festgestellt. Erfüllt der Text, den du da reingeschrieben hast irgend einen Sinn? "Der Wald ist voller Bäume" :D

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Nein !
Das war einfach nur ein test Text. Um zu sehen ob es geht.

Obwohl das stimmt doch: ein Wald ist voller Bäume oder etwa nicht ?
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

also erstens die Idee finde ich SUPER.

Doch willst du vielleicht nicht deine Komponente von TSynEdit ableiten?
Dann hast du schon alle Basissachen und würdest automatisch an der Verbesserung der Vorgänger-Komponente teilhaben.
Zwar müsstest du die Highliter-Sachen abschalten und dafür die Individuelle Zeichengestaltung entwickeln, doch das dürfte wesentlich einfacher sein, als ALLES von vorne zu machen...

Gruß Alexander
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Doch willst du vielleicht nicht deine Komponente von TSynEdit ableiten?
Das habe ich mir auch schon überlegt. Nur hätte ich einige Probleme zu lösen. z.b. wie könnte ich z.b. dort ein Word oder so markieren und dann einfärben ? Müsste ich evlt. eine erweiterte Liste einfügen.

Ich müsste mir mal die Synedit Klassen genauer anschauen um Ideen für so ein Projekt zu bekommen.
Zwar müsstest du die Highliter-Sachen abschalten und dafür die Individuelle Zeichengestaltung entwickeln, doch das dürfte wesentlich einfacher sein, als ALLES von vorne zu machen...
Ja da gebe ich dir vollkommen recht. Die Frage ist halt nur wie könnte ich das mit den Zeichengestaltung am besten lösen ? Doch nur über ein weitere Liste. Weil SynEdit nutzt ja leider nur TStringList. Evlt. könnte ich aber die
Highliter-Sachen Eigenschaft Missbrauchen für meinen zweck.

Ich bin der Meinung abgesehen vom Scrollen ist der Rest eigentlich nicht so schwer. Finde ich. Nagut das Suchen und Ersetzten wird nicht einfach werden. Sowie das mit dem Drucken. Aber so ein Projekt hat ja noch viel mehr aufgaben.

Toll währe es wenn mir jemand ein Projekt erstellen könnte wo die Scroll Funktion bereist drin ist. Damit meine ich folgende Eigenschaften:
- Ist der Cursor am Rand soll in die jeweilige richtig gescrollt werden.
- Springt der User zu einer bestimmten Zeile oder Spalte soll dort hingescrollt werden.

Das sind die zwei Punkte die mir im Moment die Suppe versalzten.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmm also vielleicht kannst du ja die TSynEditStringList (ableiten und) so abändern dass sie zusätzliche Infos speichern kann...
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Genau darüber habe ich mir auch schon einige Gedanken gemacht. Evlt. schaue ich mir die Klassen nochmal an. Aber ich denke das herrausfiltern der einzelnen Wörter wegen dem herrvorheben wird direkt in der Paint Methode gemacht. Das habe ich schon gesehen.

D.h. ich müsste erstmal eine eigene PaintMethode erstellen. Wenn ich von SynEdit oder SynMemo ableiten wollte. dort müsste ich meinen Code Parsen und die "Anweisungen" wie z.b. ob ein Wort Fett sein soll oder nicht wieder löschen. das soll ja nicht angezeigt werden.

Ich habe eine Komponente gesehen bei KDE im QT-Desinger die machen das auch so. mit einfachen HTML Code.
Allerdings gibt es den Nachteil bei SynEdit wie ich gesehen und erfahren habe das die nur mit gleich großen Buchstaben umgehen können. Das währe mir erstmal egal. Aber auf langersicht möchte ich auch unterschiedlich große Buchstaben unterstützen. Z.B. eine andere Schrift art mitten in einer Zeile oder Absatzt würde dann aufjedenfall nicht gehen.
Folgende Sachen könnten gehen:
- Hintergrund/Vordergrund Farbe
- Schrift Style
Das wars auch schon. Leider.
Am Anfang mag das ja auch ausreichen. Warum nicht. Aber später möchte ich noch einige Sachen mehr hinzufügen. Vorallem wie bei meiner GUI jetzt Objekte. Hier könnte ich bestimmt auf Lazarus Komponenten zurückgreifen. Z.B. wenn ein Bild da gestellt werden soll oder ein Soruce Code angezeigt werden soll. oder sowas halt. Es ist aber sehr viel aufwand.

TSynEditStringList darüber bin ich auch schon gestolpert. Aber das ist eine normale TStringlist auf den erstenblick mit nur wenig neue Funktionen. Aber da müsste ich auch erstmal nach schauen.

Ich glaube aber die SynEdit Komponenten währen auf langersicht für mein Vorhaben einfach ungeignet. Probieren könnte ich es aber Trozdem. Warum nicht.
MFG
Michael Springwald

alexander
Beiträge: 423
Registriert: Di 5. Feb 2008, 12:45
OS, Lazarus, FPC: Linux, Lazarus svn, FPC svn
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von alexander »

hmmm da hast du recht.... sehr flexibel ist Synedit dann nicht, wenn es um verschiedene Schriftgrößen und Arten geht....

hmmm echt schade, dass es von den LCL Entwicklern noch kein RichEdit gibt. Dann könntest du dir die Arbeit sparen...

Weißt du ob die LCL Entwickler bereits an einer RichEdit Kompo Arbeiten? (Doppelte Arbeit muss man sich ja nicht machen...)

Bestimmt gibt es irgendwo im netz eine Delphi/Lazarus RichEdit unter der GPL. Vielleicht nicht so funktionsreich, aber man könnte ja darauf aufbauen...

Gruß Alexander


PS: Jaaa so eine Edit wäre schön.. hatte ich im Forum auch schon mal nachgefragt, aber als ausweg benutze ich TIpHtmlPanel...
Auch wenn es nicht so komfortabel wie eine RichEdit ist...

PPS: hmmm wäre das rtf Format nicht besser als HTML?
Du magst Freiheit? Gönne es auch deinem Computer mit Linux!
www.alexanderroth.eu

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

hmmm echt schade, dass es von den LCL Entwicklern noch kein RichEdit gibt
meines wissens nicht. Ich weiß nur das sowas in QT drin ist. Aber bei GTk1 und 2 leider nicht. Darum möchte ich sowas ja auch erstellen.
Bestimmt gibt es irgendwo im netz eine Delphi/Lazarus RichEdit unter der GPL
Eine gibt es für Delphi. Die wurde komplett selbst erstellt vom Autor. Die müsste man nur anpassen. Weil einiges davon gibt es mit Sicherheit in dieser Form nicht. Allerdings kann da auch noch unterschiedliche Zeilen rößen angezeigt werden meine ich.
PPS: hmmm wäre das rtf Format nicht besser als HTML?
Besser nicht. nur einfacher. Aber zum RTF Format habe ich auch noch keine Deutsche Dokumeantion gefunden. Leider nur eine Englische von MS. und bei HTML habe ich den vorteil einiges kann ich davon. Z.B. die Syntax und auch die einfachen Formatierungen. Wie Fett, kursiv und so. Mal sehen. Aber du kannst davon Ausgehen das Theos Komponente zuerst Fertig wird und auch besser sein wird als meine. Aber ich werde Trotzdem meine erstellen.
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

rtf ist meiner Meinung nach wesentlich schwieriger als html mit seinen paar Tags ;)

Und vor allem sieht es nochdazu etwas kryptischer aus.
Johannes

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Würd ich für ein Gerücht halten, HTML bietet viel mehr interpretationsspielraum dann kommen noch CSS und div dections und solch schimme Sachen dazu bei RTF ist alles genau definiert und es gibt auch lang nicht so viel Eigenschaften.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ihr habt natürlich beide Recht. Aber Christian Gedanken hatte ich auch. Darum habe ich auch gesagt RTF währe einfacher. Weil man sich da nicht um die vielen Erweiterungen kümmern muss wie bei HTMl. z.B:
- CSS
- JaverScript
- PHP(evlt)
- PERL(evlt)
Was gibt noch ?
Bei RTF währe das nur das Format.

Gut kryptischer sieht es aus, aber darum gibt es ja auch Programme die das Verstehen. HTML und RTF kann man eigentlich nicht vergleichen. HTML bietet viel viel mehr als RTF. RTF kann zwar auch schon eine menge. Aber html halt noch viel mehr.

Im Moment nutzte ich ja auch ein eigens Format z.b. bei meiner GUI. aber beim Editor würde ich halt gerne ein bekanntes Format nutzen. evlt. ein sehr einfaches HTML oder ein sehr einfaches XML Datei Format.

Mit Sehr einfach meine ich auch sehr einfach. Das nur die Anweisungen/tag unterstütz werden um ein Text zu Formatieren. Evlt. noch Tabellen. Aber da auch nicht alles was HTML anzubieten hat.
Ich möchte auch gar nicht so viel.
Zuletzt geändert von pluto am So 8. Jun 2008, 13:16, insgesamt 2-mal geändert.
MFG
Michael Springwald

Antworten