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 »

Dann lass noch die Mengenbeschränkung fallen, die ist überflüssig. Und beim einlesen mußt du starten, also muß es auch die möglichen Formatierungen im Format lesen und umsetzen können.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6857
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Beitrag von af0815 »

pluto hat geschrieben:davon rede ich die ganze zeit: intern habe ich ein einheitliches Format und alle Formate ich die unterstütze werden in dieses Format umgewandelt beim Speichern und laden
Nur ein kleiner Tip, schau dir mal UDO an. Das ist ein konverter für Texte, vielleicht kannst Du von dort ein paar Ideen übernehmen, von wegen internes Format und umwandeln.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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 »

kann ich machen. Bisher kenne ich UDO noch gar nicht. Vielen Dank für diesen TIP. ich glaube wenn ich mir denn Quellcode von OpenOffice vornehmen sollte, währe das zwar praktisch aber mit Sicherheit würde das wesentlich länger dauern. evlt. werde ich das sogar machen.
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 »

@pluto

Habsch gerade gefunden, vielleicht findest du da einen brauchbaren Ansatz.
Dateianhänge
lazrichview-0.5.2.2.tar.gz
Rich-View-Compos für laz
(69.75 KiB) 88-mal heruntergeladen
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 »

Danke, die kenne ich schon. Wenn du mir das erklären könntes wie die das mit den markieren gelöst haben, das währe super das verstehe ich nämlich nicht.

Von dieser Komponente hatte ich ja die Idee pro Schrift konfiguation eine Zeile zu verwenden und die dann hintereinander auszugeben.
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 »

Dann guck dir mal das hier in RichView.pas genauer an. Da wird das veranstaltet.

Code: Alles auswählen

procedure TRichView.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
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 »

das habe ich auch gesehen. Nur habe ich es nicht ganz verstanden wie sie:
A) den Markierung Rahmen erzeugen
B) wie sie an die Markierten Buchstaben ran kommen.

ich habe dort 2 Funktionen aus gemacht wie mit den Markieren zu tuen haben.
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 »

Nimms einfach mit dem Debugger auseinander...
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 »

das sagst du so leicht. Aber werde ich wohl müssen. Wenn ich das gemeinnis lüften möchte. Eine Idee hätte ich ja fürs Markieren:
einfach eine Liste zu nehmen.

dort steht z.b. drin welche bereiche Markiert werden sollen und dann wird es auch ein leichtes sein an den Markierten text zu kommen. Würde ich mal sagen.
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 es geht weiter.
Zusammen mit einem Nachbar habe ich es jetzt hinbekommen.
und zwar ich/wir verwende eine Doppelte Verkette Liste.

Im Prinzip dürfte das anfügen von Zeichen in großen Texten kein Problem mehr da stellen.

sobald das Test Projekt fertig, ist lade ich es hoch.
im Moment ist noch das Cuser setzten mit der Maus ein kleines Problem.
ach ja und es ist wie gehabt:
jeder Buchstabe ist ein Object. ich glaube einfach das es nicht so
viel ausmacht. Im Moment wüsste ich auch nicht wie ich es anders lösen könnte.
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, habe heute das Test Projekt in klassen und Units aufgeteilt.
Was mich noch stört ist die Tatsache das beim schreiben ständig die Zeichen Funktion aufgerufen werden muss.

Das verursacht CPU last, bei mir ist die dabei auf ca 40-50%
und zwar liegt das an TextOut. Gibt es da was besseres ?

ach ja, habe es jetzt in eine Eigene klasse gepackt und es wird direkt auf ein Panel gezeichnet.

Das Problem ist auch noch, ich erstelle das Panel auf eine Scrollbox die ich auch zur Laufzeit erstelle und wenn ich jetzt Scrolle flimmert es.
noch was, das zeichnen passiert in einem Thread, kann das Flimern dadurch verursacht werden ?
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 »

Wie sieht das Konstrukt denn aus, wenn du über nen Thread zeichnest?

Rufst du für jedes zeichnen nen Thread auf oder empfängt der sämtliche Eingaben?

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 »

im Moment rufe ich für jede Eingabe den Thread auf, der in eine schleife eine String Variable ausliest und per Textout zeichnet und zwar jedes zeichnen einzeln. Das war notwendig wegen dem Auto. Zeilen Umbruch.
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 »

:shock: irgendwie sträuben sich da meine Nackenhare, wenn der für jedes Zeichen aufgerufen wird, was bringt das ganze dann?

Sag bloß noch, du erstellst in für jedes Zeichen neu?

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 »

Wenn du mit neu Erstell den Thread meinst: nein denn erstelle ich nur einmal und rufe ihn bei jeder Eingabe auf.

Ich finde den Thread auch richtig, das ich das ausgelagert habe.

Ich habe gesehen, wenn die IDE geschlossen ist ist die CPU-Last deutlich geringer beim zeichnen als wenn sie Oben ist.

Ich würde sagen das die CPU-Last jetzt der von OpenOffice entspricht.

wie würdest du dieses Problem lösen ?
ich habe ja nur eine endlos kette die ich auf dem Bildschirm anzeigen möchte und zwar mit auto. Zeilen Umbruch .
MFG
Michael Springwald

Antworten