Gemeinschafst projekt: rtf änliches komponente !

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Antworten
Benutzeravatar
theo
Beiträge: 10925
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

monta hat geschrieben: Was die Anbhängigkeiten von anderen programmen betrifft, stimm ich Christian zu, alles gut und schön, und hier mögen die meisten auch Mozilla oder ein derivat davon haben, aber solche Abhängigkeiten finde ich prinzipiell Mist, schon weil ich als Anwender auch die Freiheit haben will, was für einen Browser ich beispielsweise nehme und keinen nur wegen eines Programmes installieren will.
Das finde ich prinzipiell auch. Ich hatte bei der Idee auch mehr daran gedacht, dass ein paar DLL's / SO's der Gecko Engine mitzuliefern reichen würde.
Aber ich habe keine Ahnung ob das so ginge.

Ein natives Control wäre mir auch lieber, aber ich halte es nicht für wahrscheinlich, dass jemand einen kompletten modernen Webbrowser in Lazarus / Delphi schreibt.
Und es gibt doch einige Leute die Delphi's TWebbrowser vermissen in Lazarus und damals in Kylix.

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 weiß einfach nicht mehr weiter wenn ich buffer.canvas.font.style:=[bsBold];
und dann einen text ausgeben passiert nichts bzw. es wird nicht fett geschrieben kannjemmand sagen warum ?

Ich habe alles installisiert !
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 »

ich habe herrausgefunden das so ein namen nur geht:
-schumacher-bold-r-normal-*-*-120-*-*-*-*-iso646.1991-irv-
wenn ich den bei buffer.canvsd.font.name angebe dann geht das !

frage: wie erzeuge ich so einen String ? ohne Dialog !
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 »

Problem gelöst ! darauf falle ich jedes mal wieder rein:
es liegt an der schrift art:
'-adobe-courier-medium-r-normal-*-*-120-*-*-*-*-iso10646-1'
jede schrift bekommt diesen namen zugewiesen und schont geht es mit den TFontStyle *G*
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 »

ich bin jetzt soweit das ich jede Zeile in einer Unterschiedlichen konfiguation anzeigen kann ich habe mal ein bild im Anhang hochgeladen !
das Nächte Ziel ist es in einer spalte unterschiedliche Schrift konfiguationen anzuzeigen *G*

edit:
ich habe das jetzt so gemacht, dass jede andere konfiguation eine extra Stringlist hat bzw. wenn es nur ein kurzer text ist eine einfache variable verwendet !

in einer Zeile kann ich Inzwischen Markieren, im moment habe ich das wieder ausgeschaltet wegen denn unterschiedlichen TStringlisten ! da muss ich mir erstmal die richtige TStringlist raußsuchen !
Dateianhänge
Bildschirmfoto-Memo Test.png
Bildschirmfoto-Memo Test.png (8.94 KiB) 2111 mal betrachtet
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 »

so nächste stufe ist erreicht:
es kann jetzt Texte mit mehrer unterschiedliche Schrift stylen da stellen in einer Zeile.
im Anhang gibt es ein bild davon !

mal ne Frage befasst sich auserrmir mit diesem Thma ?
ich habe das jetzt so gelöst:

Jeder Style kommt in eine TObjectList und dort in eine TStringlist !
diese Tstringlist enthält den text der angezeigt wird.

Jetzt habe ich noch pro eintrag eine zweite TSTringlist, die nutzte ich um herrauszufinden welchen entrag ich ausgewählt habe + die entsprechende Zeile.

Ich hoffe das hat jetzt jemmand verstanden *G*
Dateianhänge
4.png
4.png (8.64 KiB) 2116 mal betrachtet
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 »

welches thema, sei mir nicht bös aber das was du da machst hat mit ner rtf komponente nicht viel zu tun
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 »

mein Ziel ist es erstmal keine RTF Komponente zu schreiben sondern eine Komponente die Text darstellen kann in unterschiedlichen schriftkonfiguation.

und später möchte ich auch noch die Möglichkeit anbieten über proceduren rtf, html Datei zu laden mehr nicht !

und im Moment bin ich dabei die Textengine zu "entwickeln" und ein Prototyp zu schreiben !
was garnichtmal so leicht sind !

folgende sachen möchte ich um beding hinbekommen

1: Text das stellen in unterschiedlicher Schriftkonfiguation d.h. bunten text !(das geht schon)
2: ich möchte einen Text makieren können
3: ich möchte den text bearbeiten können per Tastertur so wie in einem Memo !
4: einen Cursor darstellen

das sind die sachen die ich erstmal hinbekommen möchte !
und dann sehe ich weiter !
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 »

so ein weiters ziel hinbekommen: ich kann jetzt mit der Maus auf eine Zeile klicken, und es wird der richtige Eintrag zurückgeben bzw. ausgeben !

das habe ich mit einer zweiten TStringList gelöst:
beim zeichnen wird die ersten stringlist ausgeben und gleichzeitig wird in eine zweite TStirnglist geschrieben wie es ausgeben wurden ist also gleiche formatierung !
ich habe die unit umymemo hochgeladen !

sie ist nicht perfekt und es kann sehr viel noch optimeirt werden aber das hat noch zeit !
Dateianhänge
umyMemo.pas
(12.07 KiB) 66-mal heruntergeladen
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 »

Ich habe mir mal lazrichview angeschaut und neue Ideen bekommen!
Zum einen habe ich gesehen das mein ansatzt im Prinzip richtig ist:
ich speichere jede neue Konfiguation in einer eigenen TStringlist ab !
die Verwaltung übernimmt eine Objlist.

Wie ich gesehen habe kann ich mir diesen Aufwand sparen in dem ich pro Zeile eine andere Konfiguation verwende und fertig !
Das speichere ich dann als obj.

In meinem versuch habe ich eine weitere TStirnglist genommen da steht es genauso drin wie es gezeichnet wurde. Damit das Makieren später einfacher wird.

Das Makieren ansicht habe ich noch nicht so ganz verstanden.

ich werde nochmal von vorne anfangen und versuchen was brauchbares zu schreiben !

Mein Ziel ist es erstmal nicht irgenein Format zu unterstützen sondern ehrer
um das anzeigen von formatieren Text und das anschließende Raußkopieren per Tastertur und Maus !

Später kommt das ändern vom Text noch dazu !
Aber ich glaube das wird einfacher als mein erstes Ziel *G*

es währe schön wenn sich mit diesem Problem noch jemand befassen würde ausermir !
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 »

Du kannst einfach nicht locker lassen was ?
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 »

nein !
ich werde noch einen versuch starten !

Ich werde es so lange versuchen bis ich es geschaft habt entweder mit eure hilfe oder ohne *G*

War mir nur noch unklar ist, ist das mit dem makieren. Im Prinzip weiß ich wie ich das machen muss, aber die umsetztung.....
ich muss ja erstmal die richtige zeile ermitteln(und das möglich schnell )
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 »

Das war dir von anfang an unklar und wird auch weiter so sein. Naja bin gespannt.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

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 »

Ich denk mal leise. Früher haben wir sowas mal mit Drucker-Codes im Text gemacht. Steuercode wird mit einem betsimmten Zeichen eingeleitet (ASCII-index const
 
Ctrl = #7;
 
bold = '%B';
fat = '%F';
underlined = '%UL';
 
usw.[/code]

Die Bezeichner vor dem Gleichheitszeichen sind fest definiert und gelten für jedes Format gleich, alles danach ist Formatabhängig.

Ein Text-Snipet ist dann als Bold definiert wenn gilt:

Ctrl+bold+'Text-Snipet in Bold'+bold+Ctrl

Auf diese Weise können auch mehrere Formatanweisungen angewendet werden und auch geschachtelt auftreten. Um das umzusetzen geht man von TMemo aus und steuert das Ganze in der Paint-Methode. Die Steuerzeichen werden in die jeweilige Darstellung umgesetzt aber nicht angezeigt. Der Text wird in einem Stream gespeichert, was das Scrollen erleichtert.

Wenn man das schlau anfängt, besorgt man sich zuerstmal die einleitenden Steuercodes für Rich-Text. Das setzt man als erstes in die Tat um. Das deshalb, weil Rich-Text nicht sehr viele Möglichkeiten hat. Da auch bei Rich-Text ein mime-magic im Kopf der Datei steht kann man auf diese Weise die richtige Steuercode-Liste laden. Je nach mime-magic könnte man dann eine entsprechende Utils-Bar in das TMyEditor-Objekt einbetten (merke: was nicht da ist kann man auch nicht benutzen...:lol: :wink: ). Die Utils(Tool)-Bar kann dann auch Eigentümer der Steuercode-Liste sein, das entspräche auch dem Gedanken der OOP.

Das aufwendigste dürfte dann die Paint-Methode sein.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

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 »

die Idee ist nicht schlecht... so wie ich die verstehe müsste ich "nur" die Paint Methode überladen bzw. eine komponente von TMemo ableiteten und dann die Paint procedure überladen.

Dann müsste das Markieren doch auto. unterstützt werden oder ? und diese %B %f werden nicht angezeigt ? ich werde mal bei Gelegenheit deinen Ansatzt testen
MFG
Michael Springwald

Antworten