Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Okt 24, 2020 10:26

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Editor Komponente
BeitragVerfasst: Mo Mai 12, 2008 12:13 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Hallo,
ich versuche gerade für Lazarus eine Editor Komponente zu schreiben. Erstmal habe ich mir nur kleine Ziele gesetzt z.b. das Grundverhalten von einem einfacher Memo Komponente möchte ich gerne nach bauen. Das meiste habe ich auch schon ganz gut hinbekommen.

Allerdings habe ich ein großes Problem beim Scrollen. Das bekomme ich einfach nicht so hin wie ich es gerne hätte. Darum habe ich ein kleines Test Projekt vorbereitet was sich nur auf das alle nötiges beschränkt. Bei meinem Haupt Projekt wird alles vorher gebuffert bei diesem Projekt wegen der einfachhalt nicht.

Das Projekt kann im Moment nur Texte Laden und da stellen und der Cursor kann verschoben werden mit den Pfeiltasten. Wegen der einfachhalt habe ich habe eine TStringlsit verwendet.
Mein Haupt Projekt kann natürlich viel mehr. Zum Vergleich habe ich zwei Bilder noch hinzugefügt zum Anhang.

Mein Hoffnung ist jetzt das mir einer von euch die Scroll Funktion einbauen könnte in das Test Projekt. Das währe ganz toll. Ich möchte gerne so ein Scroll Verhalten wie das bei den Synedit Komponenten der Fall ist, oder halt von dem Windows Editor Notepad oder gedit von Linux.

Ich hoffe ihr habe nix gegen so eine Frage, den sie hat ja so gesehen nix mit OpenGL zu tun. Weil es währe so toll wenn ich das mit den Scrollen hinbekommen würde, die gleiche Technik könnte ich dann auch bei meiner ListBox anwenden und soweiter.

Mein Haupt Problem ist im Moment das ich gerne sobald der Cursor gesetzt wird, die Scroll Balken entsprechend gesetzt wird und auch der gewünschte Text abschnitt angezeigt wird.

Das Scrollen an sich hatte ich schon mal hinbekommen, allerdings nur von 0 bis Text Ende.

Evlt. reicht das ja schon für mich, wenn ihr nur das Vertikale oder Horizontale Scrollen einbauen würdet. Beide währen aber auch nicht schlecht.
Der jenige sich überwinden kann die Scroll Funktion einzubauen wird natürlich überall im Projekt erwähnt werden, welche Daten kann er dann selbst entscheiden.
Ich dachte dabei an folgende Stellen:
- Readme, Haupt Unit Datei.

Ich hoffe die Bitte ist all zu Problematisch zu erfüllen.
Ich habe die gleiche Frage schon im Lazarus Forum gestellt:
http://www.lazarusforum.de/viewtopic.php?p=19517#19517
Aber bisher ist dort meiner Bitte noch keiner nachgekommen.

Das Projekt ist in Lazarus geschrieben. Aber mit einem Delphi Projekt währe ich auch schon glücklich wenn es einfach gehalten ist könnte ich es entsprechend anpassen.
Die Scroll Balken werden auch schon angezeigt.


Dateianhänge:
Dateikommentar: Bereit für das Einbauen der Scroll Funktion.
Archiv.zip [9.44 KiB]
307-mal heruntergeladen
Dateikommentar: Bild vom Test Projekt. Text habe ich aus SelfHtml
TestEdit.jpg
TestEdit.jpg [ 117.05 KiB | 5931-mal betrachtet ]
Dateikommentar: Pre Alpha Version von meiner Editor Projekt.
Hier ist der Text ein Teil aus meinem Tagebuch.

Editor3.jpg [101.7 KiB]
23-mal heruntergeladen

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Okt 09, 2008 18:58 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Ich habe mal eine Frage:
Ich habe ein Config Dialog hinzugefügt. Dort habe ich eine Vorschau Funktion eingebaut. Also wenn man was ändert, was die da Stellung ändert, kann man es sofort sehen.
Soweit geht das auch. Ich kann auch in die Vorschau rein klicken. Je nach dem wo ich drauf geklickt habe, wird dann zum Entsprechender Notebook Page gesprungen. *G*.

Allerdings habe ich jetzt ein kleines Problem, beim Markieren und Suchen.
Wenn ich in der Vorschau es so einstelle das was markiert ist wird es angezeigt und Änderungen am Style werden übernommen. Aber wenn ich jetzt suche geht das leider nicht mehr. Der Grund: Für das Markieren und Suchen nutze ich eine bzw. die gleichen Variablen.
Ich habe mir überlegt, hier könnte ich doch jetzt eine Liste nehmen und dort die markierten und gesuchten bereiche einfügen. Beim Zeichnen und ein größten Teil der restlichen Funktionen hätte ich keine Probleme. Allerdings würde es evlt. beim Kopieren/Ausschneiden Probleme geben.
Weil dort würde ich ja dann die Markierten bereiche aus der Liste nehmen und alle hintereinander packen in einer Liste um an den Text dran zu kommen.
Außerdem müsste ich vor jeder Nutzung eine weitere Forschleife benutzen. So hätte ich in einigen Methoden gleich drei Forschleifen hintereinander(Verschachtelt).

Kennt jemand noch ein bessere Lösung ? Außer jetzt zwei weitere Variablen zu nehmen ? Weil ich würde später auch gerne die Möglichkeit geben, das alle gefundenen Strings auf einmal angezeigt werden können.


Zur Entwicklung: Es gibt noch sehr viele kleinere BUGS. Einige davon habe ich beheben können. Aber bei weiten noch nicht alle. Ich denke das Projekt braucht zeit zum "Ausreifen".
Ich hoffe sehr das ich dieses Projekt Fertig bekommen. Ich würde auch gerne mal ausprobieren ob der eine oder anders es unter Lazarus bei sich Kompilieren und Installieren kann.
Bzw. nutzten kann. Installiert habe ich die Komponente bei mir auch noch nicht.
Im Moment nutzte ich kein OPBitmap weil es damit immer wieder Probleme gibt. Bei jeder Version Änderung muss es angepasst werden. Ich muss hier wohl was anders nehmen. Ich möchte ja gerne das beim Schreiben die Möglichkeit besteht ein Hintergrund Bild anzuzeigen. Später evlt. auch Animierte(Einfache)

Angenommen, das der eine oder andere das Projekt Kompilieren kann bei sich, könnte dieser jemand dann auch das Projekt mal durch schauen nach Fehlern oder andere sachen ? z.b. Optimierungen ? oder Fehler Beseitigung ? Ich habe noch Probleme beim Markieren. Das geht zwar schon zu 90% Aber die letzten 10% machen Probleme.
Oder auch beim Scrollen(Allerdings nur noch Fein Abstimmung). Außerdem würde es zu Zweit oder zu Mehren glaube ich auch mehr Spaß machen.
Ich bin auch bereit ein komplett neues Projekt anzufangen. Allerdings währe es besser dieses zu verwenden.
Wenn jemand lust hat mir zu Helfen, könnte er sich ja per PM bei mir melden oder es halt hier posten.
Das Projekt hat keinen Zeitplan. Nur einen Groben, wie gesagt bis ende das Jahres möchte ich gerne eine erste Alpha Version veröffentlichen wo die Grund Funktionen zu 99,9% Funktionieren.

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jan 15, 2009 16:29 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Ende Letzten Jahres habe ich das Projekt komplett neu angefangen. Gründe:
01) Code Sehr unübersichtlich gewesen
02) Schlechte Code Einteilung, Schlechte Code Strukturierung
03) Viel zu viele Aufgaben angefangen und kaum eine war richtig erledigt. Es gab zu viele "Baustellen"

Das sind die drei Hauptgründe. Das Neue Projekt gefällt mir viel besser. Es hat eine viel Übersichtlichere und Anpassungsfähigere Klassen-Struktur.
Es gibt drei units und drei Haupt Klassen:
uPLEdit
Beinhaltet TPLEdit die von TCustomConstrol abgeleitet ist und die die User Anfragen/Events zu
TPLEdit_TextBuffer_Base(uPLEdit_TextBuffer_Base) weiterleitet. Diese Klasse ist nur eine Abstracte Bases Klasse bis jetzt. Später könnte die ein Groß Teil der Funktionen übernehmen die ich zur Zeit noch in
uPLEdit_TextBuffer_StringList
schreibe. Diese Klasse soll alle Methoden beinhalten die für das Bearbeiten, Cursor Navigation sowie das Markieren und noch einige anderen aufgaben beinhalten.

Das Praktische hier dran ist/währe wenn der StringList Buffer fertig ist könnte ich noch einen anfangen de RichEdit ähnliche aufgaben erledigen könnte. Wobei das Scrollen und andere Elemente nicht auf Grund komplett neu geschrieben werden müssen.

Zur Zeit basiert der Code darauf, das die Buchstaben alle Gleichgroß sind.

Ich gehe im Moment auch komplett anders an das Projekt ran: Ich habe mir ein "Entwicklungs-Plan" erstellt. Dieser Plan ist in Phasen und in unter Phasen aufgeteilt. Zur Zeit bin ich noch in "Phase 1". Dort habe ich noch einige Aufgaben vor mir bis es in "Phase 2" Weiter geht.

Einen neuen Soruce-Code gibt es erst wenn der soweit ist im Anhang findet ihr den "Entwicklungs-Plan" als PDF. Er ist noch nicht ganz Fertig. Zur Zeit überarbeite ich ihn noch. Aber ich lade ihn trotzdem mal hoch. Da steht auch noch nicht alles drin. Einige aufgaben Fehlen noch. Ich entwickel den Plan schritt weise weiter. So verbuche ich einige kleine Erfolge die den Projekt doch zu gute kommen.

Ich finde der Anfang ist immer sehr schwer, gerade das Markieren. Weil hier muss wirklich alles miteinander "Harmonieren".


Dateianhänge:
plana.pdf [49.09 KiB]
331-mal heruntergeladen

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus
Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Feb 15, 2009 17:53 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Die Entwicklung kommt sehr gut voran, ich habe vor kurzem ein neues Experiment gestartet auf der Grundlage vom alten Projekt. Das Ziel ist es eine eigene RichEdit ähnliche Komponente zu erstellen. Die Entwicklung kommt nur langsam vorran weil es an jeder Ecke Probleme gibt. Aber das hält mich nur bedingt auf *G*.

Die Entwicklung von mein vorherigen Projekt, ist vorübergehen Pausiert. Weil ich da schon sehr weit bin. Habe fast alle aufgaben von "Phase 1" erledigt. Der Rest kommt noch.

Bei meinem Neun Versuch habe ich einige Probleme. Die Hauptfrage ist das Scorllen. Die Daten Struktur basiert auf eine art Tabellen Struktur. Wobei jede Zusammenhänge Schrift Konfiguration ein Spalte in der jeweiligen Zeile bildet.

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Editor Komponente
BeitragVerfasst: Di Jan 19, 2010 18:03 
Offline
DGL Member
Benutzeravatar

Registriert: So Mai 11, 2003 10:36
Beiträge: 285
Wohnort: Oldenburg
Programmiersprache: Object Pascal
Das Projekt, um was es hier geht, habe ich eingestellt und es komplett neu Aufgezogen in einer komplett anderen Form. In diesem Projekt, wird der Editor nur eine sehr kleine Rolle spielen.... Etwas steht hier schon: http://forge.lazarusforum.de/projects/show/textengine

Es soll eine Art Universal Betrachter werden. Der bisherige Prototyp sieht schon recht gut aus. Daher werde ich ein neuen Thread auf machen Eventuell.
Universal Betrachter heißt in diesem Fall: Ich möchte sehr viele verschiedene "Beschreibungs Formate" unterstützen. Zur Zeit Arbeite ich an der Render Engine, da diese am wichtigsten aus meiner Sicht ist. Ohne sie geht nichts.... Dateien Parsen kommt erst später.

Es währe Technisch schon jetzt möglich einen Editor anzufangen mit den was ich bisher habe, es währe nur nicht Sinnvoll. Da noch einige Grund Funktionen wie z.b. das Markieren oder andere Techniken wie z.b. Innen und Außenabstand fehlen oder die Möglichkeit den Text Fluss zu steuern, noch nicht voll und ganz ausgereift sind oder noch Fehlen.

Es wird wohl noch einige Zeit dauern, letztes Jahr, wollte ich noch den ersten Prototypen veröffentlichen, aber das wird sich wohl verschieben.

_________________
MFG<br> Michael Springwald, <br>
Bitte nur Links in Deutsch, nutze überwiegend Lazarus


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.059s | 21 Queries | GZIP : On ]