Gemeinschafst projekt: rtf änliches komponente !

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@theo

Eben nicht, du trennst zwischen der reinen ASCII-Textdatei und einer spezialisierten Formatdatei. Beim einlesen des ASCII-Textes stößt du dann unterwegs auf die Formatangabe in Form eines Verweises auf die Fileposition in der Formatdatei. Da könnte dann z.B. TextColor = clRed drin stehen, was im Canvas ja nur zu einer Änderung führt. Ähnliches findet sich dann eben auch für TextHeight oder alle anderen Format-Angaben. Also nimmt man aus dem ASCII-Stream die Zeichen zwischen 2 Format-Identifiern und gibt entsprechend aus. Dann ändern des Formats und wieder Text bis zum nächsten Identifier.

Zusätzliche Objekte wie Images hält man in einer gesonderten Objekt-Datei und kann dann auch auf die einfach zugreifen. Im ASCII-File steht an der Stelle der Verweis auf die Filepos im Objekt-File.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

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 »

Schnuller du denkst viel zu spezialisiert das was du da beschreibst gehört in eine Formatleser Klasse und nicht in die Hauptkomponente.
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 »

immer das gleich mit euch. :evil:
ich weiß schon womit ich es zu tuen habe und mache mir schon ein genaues Bild von der Aufgabe.

Mein Ziel ist auch kein Programm zu schreiben was mit OO mit halten kann.

Sondern erstmal ein Memo nach zu schreiben.
Was ich dann stückweise immer weiter entwickeln werden.

habe mir heute schon einige Aufgaben dazu aufgeschrieben und mir eine Vorgehensweise überlegt.

und Theo, ich weiß wo die Probleme liegen, bzw. wo meine bei der sache liegen. und zwar im Detail.
Um die kleine Dinge wie z.b. den Curser zu steuern z.b. und die anderen Navigationstasten.

Mein ziel ist es auch nicht gleich ein Editor zu schreiben mit dem ich Dina 4 seiten haben.
sondern es soll ein Qullecode Editor für Programmierer z.b. werden bzw. eine Komponente !!!

ich finde es immer lustig, wie ihr meint ich wüsste nicht wie das geht bzw. wo die Probleme liegen. ich habe damit auch nur wieder angefangen weil ich jetzt Dank des Nachbaren eine Lösung gefunden habe die ganz Praktisch ist. so und jetzt kommen halt die anderen Aufgaben nach und nach Dran.

wenn ihr mir helfen wollt mit Tipps oder Ratschlägen, bitte aber bitte nicht immer nur sagen: das
schafst du doch nicht. das zuviel für mich.

Das ist schon lange mein Wunsch sowas zu schreiben und das werde ich JETZT mit oder ohne eure Hilfe schaffen. und wenn es 1000 Jahre Dauert das ist mir vollkommen egal.
ICH WERDE ES SCHAFFEN, punkt, wie alles andere auch.

EDIT001:
Die Daten liegen als Stream vor. ich weiß den Anfang und das Ende. Also nicht als Array oder ähnliches !!!

EDIT002:
für das Scrollen nehme ich eine TScrollbox *G*. die kümmert sich drum

Beim zeichnen wird im Moment , die Größe vom Panel und den TBitmap gesetzt.
MFG
Michael Springwald

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 »

wie alles andere auch.
Bloß gut das du noch nichts geschafft hast, was ?!
Pluto wenn wir dich freundlich drauf hinweisen das du dich mit einer Sache übernimmst dann ist das nicht bös gemeint. Wir kennen dich numal schon n paar Monate und können deine Leistungen einschätzen.
Zwing mich bitte nicht dazu noch deutlicher zu werden, denn ich bin meiss recht ehrlich.
Es gibt Leute die werden besser Bäcker uind Leute die werden besser Programmierer.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben: Mein ziel ist es auch nicht gleich ein Editor zu schreiben mit dem ich Dina 4 seiten haben.
sondern es soll ein Qullecode Editor für Programmierer z.b. werden bzw. eine Komponente !!!
Ja gut, das ist aber was komplett anderes. Dann solltest du die Überschrift dieses Threads ändern. Synedit funktioniert doch aber ganz ordentlich, oder nicht?

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 »

ich verstehe ja was ihr meint. Ich weiß das es nicht einfach wird.

Aber bitte, dann sagt mir doch mal wo eurer Meinung nach die Problem liegen.
ich sehe das so:
Fangen wir beim Verwalten der Objekte an.
ich habe ein Stream, dieser Stream wird jetzt in einer Paint Funktion gezeichnet und zwar so:

jedes Objekt wird einzeln gezeichnet, damit ich die Spalten und Zeilen Berechnen kann in zwei unterschiedlichen art und weisen.

1. Art: Damit der Rechner damit was anfangen kann in Pixeln
2. Art: Damit wir(Menschen) es leichter haben in Zeilen und Spalten angaben.
das habe ich mir so vorgestellt:
Beim zeichnen zähle ich ja die X und Y Variable hoch.
ich habe für jeden einzeln Buchstaben die Breite. Und eine Höhen Angabe.
jetzt wollte ich zwei weitere Variablen mitzählen lassen bei der wie vielten Zeile oder Spalte ich mich gerade befinde und setzte den Curser.
Somit wird die Cuser Steuerung auch einfacher. Da ich einfach nur noch sagen muss:
Spalte - 1 oder +1 und das gleiche mit der Höhe.

kommen wir zum nächsten Punk, damit nur das sichtbare gezeichnet wird muss ich einmal ermitteln was das Erste sichtbare Objekt(Zeichen) ist und das Letzte. Um nicht den gesamten Text zeichnen zu müssen.

Ich weiß auch schon wie ich das Problem löse könnte/kann:
ich habe ja eine Scrollbox somit, habe ich auch den Sichtbaren Bereich in einer Variable(TRECT) gespeichert, sobald das Objekt in dieses Viereck rein passt wird das das Start OBJ ge Pointern(ich weiß nicht wie man das nennt).
und das gleiche mit dem Endzeichen sobald das erste zeichnen das Vireck verlässt. Das könnte Haarig werden.

Die Ausrichtung dürfte auch nicht weiter Problemmatisch werden.

@theo ich weiß nicht was ich auf deinen Bild erkennen soll.
Ich weiß wie ich text Ausgebe und ich weiß wie ich diesen Text Bunt, oder Größer Da stellen kann.

Die Ausrichtung ist wie gesagt auch nicht das Problem.
Blockabsatzt weiß ich noch nicht genau was das ist und für was man es Braucht da muss ich erst noch googlen.

Mein ziel ist es erstmal ein Notepad da rauß zu machen.
Und das müsste ich hinbekommen.
Der Editor ist ja auch nur ein Nebenprojekt
Das Hauptprojekt ist im Moment die Oberfläche auch wenn ich da noch einige Problem mit dem auslesen von größeren Archiven habe.

Ich verstehe euch einfach nicht. Tut mir leid. Ich weiß wo die Problem liegen und weiß auch wie ich sie Teilweise lösen kann/könnte.

Nennt mir doch mal euer Meinung nach was ein Problem werden könnte.
ich weiß auch nicht genau wofür ich 3 Streams brauche was schnuller vorgeschlagen hatte oder 2 Thread's einer reicht doch vollkommen.

Bzw. bei Bildern würde es sinn machen zwei zu nehmen. Dann ist der Text schonmal geladen und im zweiten Thread werden dann einfach nur noch die Bilder/Grafiken nach geladen.
Das ist keine schlechte Idee oder ?

Und ich glaube ihr kennt mich auch noch nicht gut genug um zu wissen, was ich kann und was ich nicht kann, nur weil ich selten Projekte vorstelle bzw. Fertig mache heißt das noch lange nicht, das ich nicht Programmieren kann.

Mein Ziel ist es ja auch Programmierer zu werden. Das ist mein größer Wunsch. Bäcker habe ich nur gemacht, damit ich einen höheren Schulabschluss bekomme und damit ich schon einmal eine Ausbildung habe, wenn es mit der zweiten Ausbildung nichts wird.

Wie gesagt ich weiß das mein Vorhaben mit der Komponente nicht einfach wird, aber mit der Zeit(davon habe ich im Moment mehr als genug) müsste das zu schaffen sein.
ich sage ja garnicht, das sie Morgen Fertig ist die Komponente.

Ich weiß das es lange dauert sowas, gerade für jemand der das ALLEINE machen möchte/muss. Ich würde es auch wie lieber in einem Team machen.

Vorallem wo wir die Vor und Nachteile der Verschiedenen Varianten besprechen können.

Ich finde die Idee mit der Doppelt Verkennten Pointer liste gar nicht mal so schlecht.
Das ist schon mal der richtige weg oder ?

Also ihr könnt gerne sage, das ich es nicht schaffe und mich damit übernehme das ist mir egal.
Mir währe es lieber, wenn ihr mir Tipp's und Ratschläge geben könnte. Damit währe mir weiter geholfen, wenn ihr schon nicht mit machen wollt.

Es währe natürlich schön, wenn sich der eine oder andere mir anschließen würdet.
Dann könnten wir die Aufgaben verteilen und gut ist.

Wie gesagt, mir ist es egal wenn sie Fertig ist, Hauptsache sie wird Fertig. Egal wann.
und wenn ihr sagt, ihr hättet keine Zeit ist mir das gleich, weil ich weiß das ihr dazu keine lust habt. Sich mit den unbekannten zu befassen. Mal was neues zu machen. Eine Herausforderungen zu meistern. Von den Viele was haben könnten.

soviel dazu. ich verstehe auch nicht warum ihr immer wieder sagen müsst das ich es nicht schaffe und sowas. inzwischen müsste euch doch klar geworden sein, das ihr mich von diesem Wunsch nicht abringen könnt, oder etwa nicht ?

Wenn ihr es einen Anfänger sagen würde, könnte ich euch ja verstehen, aber ich schreibe doch schon über ca 8 Jahren mit Objekt Pascal bzw. Delphi und habe die nötige Erfahrung um ein

Problem einzuschätzen sofern ich mich damit auskenne. und mit dem bereich Grafik gerade 2D Grafik kenne ich mich nun mal aus.
MFG
Michael Springwald

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

@Christian

Meine Anregung geht mehr in Richtung Im- und Export. Man erzeugt sich eine Vorlage für die interne Verarbeitung und kann hinterher per Export das wieder für Word oder OO aufbereiten. So käme man bei einigermaßen Tempo immerhin zu einem brauchbaren Produkt ohne gleich tief in den Assembler-Abgrund steigen zu müssen. Am Ende ist es aber müßig pluto Tipps zu geben, was dieses Thema angeht. @pluto will die Tipps nicht also lassen wir's.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

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 »

Ich frag mich manchmal ob der Schnuller selber weiss wovon er da redet. Wir reden hier von einer Rich Text Komponente und du kommst mit Filereadern, Assembler daher.

Pluto in deinem Beitrag steht in jedem 2. Satz "ich verstehe nicht" und genau das ist das Problem. Das hab ich dir nun schon mehrfach gesagt. Wenn du unbedingt programmieren willst backe kleine Brötchen. Ich denke du machst das um Anerkennung zu haschen. Aber du versuchst immer die Welt aus den Angeln zu heben, das kannst du einfach nicht.
Ich denke auch das mein Hund nicht versucht unsere Sprache zu lernen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

pluto hat geschrieben: Es währe natürlich schön, wenn sich der eine oder andere mir anschließen würdet.
Dann könnten wir die Aufgaben verteilen und gut ist.
Welche Aufgaben denn?
Solange die Probleme nicht erkannt sind und keine Lösungsansätze da sind, kann man eben auch keine Aufgaben verteilen.
Selbst wenn tatsächlich einer bereit wäre da mitzumachen, wie würdest du dir das vorstellen?
Einfach zu zweit im trüben fischen?

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 »

ich glaube ihr wisst noch nicht genau was ich eigentlich möchte, besonders: schnullerbacke.
Ich möchte kein OO nach schreiben, sondern erstmal nur ein Notepad.
Punkt, mehr nicht und den Rest später hinzufügen.

Das wird doch nicht so schwer sein, oder etwa doch ?

Ich sehe auch nicht die Probleme die ihr seht. Was gibt es denn für Probleme ?
Gut große Texte wird schwierig werden.
Aber auch nicht umbedingt.

Die Such Funktion ? oder das Erstzten ? sind zusatzt Funktionen und gehören nicht zum kern.

Was haltet ihr von diese Idee: ich werde mich dran setzten und einen Plan erstellen mit Aufgaben. Wo drin steht, wie ich mir das im einzelnen vorstelle.

Dann könnt ihr euch immer noch entscheiden.

PS:

Code: Alles auswählen

Pluto in deinem Beitrag steht in jedem 2. Satz "ich verstehe nicht" und genau das ist das Problem.
Ja und bei euch ist das. das schaffst du nicht oder du möchtes die Welt aus den angelen heben oder Aufmerksamkeit haben. So bringt das aber nichts.

Ihr seit nicht gezwungen zu antworten. und mir zu sagen, das ich das nicht schaffe ist nicht gerade die feine art. bei einen Anfänger ja, die die erste Woche mit Object Pascal arbeitet.

So wie den euch sei: ich werde diese Woche mir vornehmen diesen Plan zu erstellen und dann als PDF Dokument einfach hochladen. und Fertig.

Was haltet ihr davon ?
MFG
Michael Springwald

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Beitrag von schnullerbacke »

Nix,

selbst der NotePad ist bereits ne kleine Textverarbeitung und zu der gehört zwingend einfügen und löschen sonst kann man sich das schenken.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

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 »

Pluto du bist nunmal aber nach Jahren Objectpascal auf dem Niveau eines Anfängers und genau deshalb raten wir dir davon ab. Das ist kein böser wille und auch nicht unfreundlich ich hab lange gewartet bis ich dir das gesagt habe. Es bringt nur einfach nichts wenn du immer wieder anfängst, immer wieder scheiterst und immer weiter so machst. Irgendwann bist du 60 schaust auf dein leben zurück und fragst dich was du da getrieben hast.
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 »

ich habe mir es überlegt: ihr habt irgendwie in allen Punkten Recht. Den Editor werde ich zwischendurch schreiben. Bis ich ein genauen Plan habe.

Mein haupt Projekt ist jetzt einfach die 7Z Oberfläche.

eine Frage habe ich noch wie kommt ihr das ich nicht mehr als ein Anfänger weiß ?
nur weil ich keine Projekte Fertig bringe ?

Dmit ist das Thema erstmal für mich erledigt. Ich weiß das ich die 7Z Oberfläche auf jeden Fall schaffen werden. Auch wenn da noch ein unslösbares Problem mit dem Speicher(RAM) ist.


ich habe die Idee mit dem Editor nur weiter verfolgt, weil ich halt einen guten Start jetzt habe wegen der Liste halt. Nur deshalb wahr/bin ich mir sicher das das die Grund Vorraussetztung ist.

und Kopieren, Ausschneiden, Einfüge, Rückgängig gehören zu den Grund Funktionen eines Editors das weiß ich inzwischen auch.

Mir ist noch eine Frage eingefallen: ihr sagt ständig es gibt Probleme, was für welche ?

Und das mit dem HTML, RTF lesen wollte ich sowieso erst sehr viel Später machen.
Am Anfang ist/war für mich wichtig diese Aufgaben zu schaffen:
- Einen Extra Thread Starten für das Zeichnen
- Altes Bild vorher löschen
- Tippen mit der Tastertur(kein Problem)
- Buchstaben Zeichnen( die Frage ist die Anordnung der Buchstaben, aber im Prinzip auch kein
Problem)
----------------------------
- Curser Steuerung per Tastertur und Maus(auch noch nicht das Problem)
- Einmal in Zeilen und Spalten einteilen und einmal das gleiche in Pixeln
- Scrollen Per Maus und Tastertur
- Nur den Sichtbaren Bereich Zeichnen, also die Buchstaben zeichnen die halt sichtbar sind
- Markieren mit Maus und Tastertur
- Kopieren, Verschieben, Einfügen, Rückgängig, Wiederherstellen.
- Suchen und Ersetzen
----------------------------
- Eine Komponente drauß machen, die in der IDE verwendet werden kann.

Da wo ich nicht hinter geschrieben habe, ist eigentlich auch kein Problem aber das habe ich noch nicht wirklich gemacht. Das muss ich dann sehen.

Diese Aufgaben habe ich mir überlegt für die 1 Voll Version von der Komponente
Da wo ich ein Trennstrich gemacht habe, wollte ich mir es in Phasen einteilen.

@Theo zu deinem Bild nochmal: das sind die Aufgaben die ich mir so vorstelle.

Aber wie gesagt. ich werde mich jetzt doch nur noch um meine 7Z Oberfläche kümmern.

Ich bestaune immer die Leute die Projekte eines nach dem anderen Fertig bekommen. Das wird mir wohl ein für immer Rätzel bleiben wie die das schaffen.

Ich habe so viele Ideen, die umzusetzen währe auch kein Problem. Aber diese Projekte sind nicht gerade klein. Sie zu planen währe das Problem. Ich denke ich sollte mehr Zeit in die Planung rein stecken.

So.

Aber evlt. könnten wir ja zusammen die Komponente erstmal Planen. Wie währe das denn ?
z.b. was ihr von meinen neuen ansatzt haltet ?

Wenn wir dann einen Plan haben, kann sich jeder die Aufgaben rauß suchen die er/sie meistern möchte.

Wenn ihr das auch nicht wollt. Werde ich es erstmal wieder auf Eis legen müssen *Schnif*
Auch wenn es ein weiter Wunsch von mir ist, diese Komponente fertig zu 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 bestaune immer die Leute die Projekte eines nach dem anderen Fertig bekommen. Das wird mir wohl ein für immer Rätzel bleiben wie die das schaffen.

Ich habe so viele Ideen, die umzusetzen währe auch kein Problem. Aber diese Projekte sind nicht gerade klein. Sie zu planen währe das Problem. Ich denke ich sollte mehr Zeit in die Planung rein stecken.
Wichtig ist vor allem: Eine Prioritätenliste festlegen.

Wenn man an hunderten großen Projekten gleichzeitig arbeitet, kommt man nicht voran. Am Besten einen Schritt nach dem anderen setzen. Zuerst ein Projekt zur Marktreife bringen, dann erst das nächste anfangen.

Das heißt, wenn du dich jetzt z.B. auf die 7z-Oberfläche konzentrierst: Programmier sie einfach soweit, dass du sagen kannst: Das ist jetzt ein rundes Ding!

Klar, jeder hat hunderte Ideen im Kopf, die er gerne sofort umgesetzt wissen möchte. Nur leider sind wir Menschen in dieser Hinsicht beschränkt und müssen uns dessen bewusst werden.

Ich glaube, das ist auch das Geheimnis der Leute, die du bestaunst ;)

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 »

@Euklid ja das habe ich mir auch schon gesagt. aber es ist halt nicht so einfach.
das auch umzusetzen vor allem dann wenn man ein Problem hat, was ich selber nicht lösen kann. und es auch im Internet keiner weiß wie es gelöst werden kann.

@Monta mir flät gerade auf du hast diesen Beitrag verschoben, sehe ich das richtig ? ich meine ich hätte ihn unter Stamtisch gepostet.
MFG
Michael Springwald

Antworten