TRichMemo

Rund um die LCL und andere Komponenten
BluBBeR
Beiträge: 4
Registriert: Mo 7. Mai 2012, 10:37

TRichMemo

Beitrag von BluBBeR »

Könnte mir eventuell jemand erklären wie ich die TRichmemo installiere ?
Auf der folgenden Seite (https://lazarus-ccr.svn.sourceforge.net ... /richmemo/" onclick="window.open(this.href);return false;) habe ich es versucht aber ich bekomme es nicht hin und meine Lehrer ebenso wenig. :(

Also falls mir jemand helfen kann Bitte ich um Antwort (:

Vielen Danke und mit Freundlichen Grüßen BluBBeR

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Re: TRichMemo

Beitrag von knight »

Welche Lazarus-Version verwendest du? TRichmemo funktioniert nicht in allen Umgebungen. Momentan sollte es mit Windows, gtk2 und qt (mit Einschränkungen) keine Probleme geben. Zur Installation wählst du im Lazarus Hauptmenü Package -> Package-Datei (.lpk öffnen)... Dann suchst du in dem Verzeichnis, in welchem du die Quelltexte heruntergeladen hast, nach der Datei richmemopackage.lpk und klickst auf Öffnen. Im Package-Editor klickst du auf Nutzung... -> Installieren. Nach dem Neustart von Lazarus solltest du die Komponente unter Common Controls in der Komponentenpalette finden.

knight

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TRichMemo

Beitrag von corpsman »

Evtl. meint er ja das in dem beigelegten testsimple eine Datei "CarbonPaste.pas" in den Projektinspector eingetragen wurde und diese da sicher nicht unter dem angegebenen Pfad vorhanden dann eine Fehlermeldung auslöst. Nichts desto trotz läst sich das sample zumindest unter win32 compilieren und ausführen. Auf einem Vernünftigen Betriebsystem konnte ich es noch nicht testen..
--
Just try it

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

Re: TRichMemo

Beitrag von theo »

Ich weiss nicht, ob die Komponente empfehlenswert ist. Sieht ziemlich verlassen aus.
Auf GTK2 kompiliert's so schon mal nicht, und wenn man es hingebogen hat, dann funzt es nicht.

Das lzRichEdit hier funzt etwas besser afaics: http://code.google.com/p/lazarus-br/downloads/list" onclick="window.open(this.href);return false;

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: TRichMemo

Beitrag von hde »

Also ich habe das RichMemo-Package ganz normal installiert. Unter Win32 scheint es auch zu laufen und unter OS X 10.6 lässt es sich zumindest einwandfrei installieren.
hde

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TRichMemo

Beitrag von corpsman »

@theo
dein Vorschlag von Richmemo scheint in der Tat "ausgereifter" . Leider bekomme ich es unter beiden nicht hin einen Text in 2 Farben ein zu fügen.

Code: Alles auswählen

lzRichEdit1.SelAttributes.Color := clred;
  lzRichEdit1.Lines.Add('Edit1.text');
  lzRichEdit1.SelAttributes.Color := clblack;
  lzRichEdit1.Lines.Add('Edit2.text');
Das geht zwar, hat aber zur Folge, dass es nachher 2 Zeilen sind.

Gibt es noch einen Trick das man den Text so einfügt, das er in einer Zeile steht, der erste Teil Rot, der Rest Schwarz ?
--
Just try it

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: TRichMemo

Beitrag von relocate »

Geht von einem leeren Richedit aus!

Code: Alles auswählen

RichEdit1.SelStart := 1; // Am Textanfang
  RichEdit1.SelLength := 0; // Länge der Markierung = 0 => Keine Markierung, nur Cursorposition
  RichEdit1.SelAttributes.Color := clred; // Farbeinstellung an Markierung, in diesem Fall eben Cursorpos
  RichEdit1.SelText := Edit1.Text; // Text einfügen
  RichEdit1.SelStart := Richedit1.GetTextLen; // Cursor ans Ende des Richedit => Da zuvor leer ans Ende des Textes in Edit1
  RichEdit1.SelLength := 0; // Wieder Markierung = 0
  RichEdit1.SelAttributes.Color := clblack; // Farbeinstellung
  RichEdit1.SelText := Edit2.Text; // Und Text zuweisen
Zuletzt geändert von Lori am Di 15. Mai 2012, 18:21, insgesamt 1-mal geändert.
Grund: Highlighter
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TRichMemo

Beitrag von corpsman »

Ahh,

Der Befehl "GetTextLen" hatte mir gefehlt.

Und wenn wir schon dabei sind. Wir kriege ich es hin, das sagen wir 2. Wort in der 10 Zeile zu markieren ?

Code: Alles auswählen

var s,w:String;
      start, len:integer;
begin
  s := Richedit.lines[9];
  w := copy(trim(s), 1, length(s));
  w := copy(w, pos(' ', w) +1, length(w));
  w := copy(w, 1, pos(pos(' ', w) -1)); // das 2. Wort aus Zeile 10
   // Wie Selektiere ich dieses nun, also, wie kriege ich es hin aus der Position von w selstart zu berechnen, ?
  start := {GetTextLen bis inclusive Zeile  9} + pos(w, s);
  len := length(w);
  // Der Rest ist klar ..
  RichEdit.SelStart := start;
  RichEdit.SelLength := len;
  RichEdit.SelAttributes.Color := clblack; // Farbeinstellung
end;
[Edit]
Übrigens scheint das lzRichedit unter Linux nicht intuitiv zu funktionieren, der Code von relocate tut hier zumindest nicht...
--
Just try it

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: TRichMemo

Beitrag von relocate »

So wie es aussieht, funktioniert lzRichedit etwas anders.
Ich bin davon ausgegangen, es ist dem Delphi Richedit nachempfunden, ebenso wie es TRichMemo ist.

SetSel und SetLength werden wohl in lzRichedit hierdurch ersetzt:

Code: Alles auswählen

procedure SetSelection(StartPos, EndPos: integer; ScrollCaret: boolean);
Die Prozedur SelText scheint es vom TCustomMemo geerbt zu haben.
Und die Länge des Textes scheint man selber berechnen zu müssen in dem man alle Zeichen zählt,
einer jeden Zeile zählt, jedenfalls habe ich keine Eigenschaft oder Methode gesehen.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TRichMemo

Beitrag von corpsman »

Also das TRichMemo von hier funktioniert ja leider nicht unter Linux ( Kubuntu gtk2 ) nicht. Sonst hätte ich das genommen. Je mehr man sich mit dem Thema befasst, desto mehr kristalisiert sich die Komplexität eines solchen Heraus ...
--
Just try it

relocate
Beiträge: 61
Registriert: Di 24. Jan 2012, 11:47
OS, Lazarus, FPC: Win (L- FPC 2.4.4 + 2.6.4)
CPU-Target: 32Bit

Re: TRichMemo

Beitrag von relocate »

Bin leider nicht ganz so im Thema, setze mich gerade mit Richedit Control unter Windows auseinander,
bin aber auf der Suche nach Alternativen, da ich 1. in Zukunft Systemunabhängig arbeiten will und mir
2. das Standard Richedit von Windows / der Delphi VCL nicht genügt.
Das TRichmemo kapselt unter Windows wiederum nur das Windows Control.
Aber unter GTK2 müsste es laufen, soweit ich das sehe muss der Ordner GTK2 von hier
https://lazarus-ccr.svn.sourceforge.net ... /richmemo/" onclick="window.open(this.href);return false;
in jedem Fall dabei sein. Es gibt dennoch einiges zu beachten:
http://www.lazarusforum.de/viewtopic.php?f=18&t=5110" onclick="window.open(this.href);return false;

Und ja, dieses Problem ist mit Sicherheit komplex, aber je weiter man vordringt, desto einfacher wird es.
Würde ich die Dinge so wie alle anderen machen, hätte ich so manche Probleme nicht.

Aber das wäre langweilig.

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)

Re: TRichMemo

Beitrag von pluto »

Nachtrag: So, nun läuft die SVN Version bei mir. Musste alles was mit GTK zu tun hatte durch GTK2 ersetzten. Warum auch immer. Aber das Beispiel was bei der SVN Version dabei läuft nun unter Ubuntu 12.4 Beta 2 mit einem KDE Desktop in der SVN Version von Lazarus 1.1 und den FPC: 2.6....
Einige Attribute kann ich auch scheinbar setzten. Farbe habe ich noch nicht hinbekommen.
MFG
Michael Springwald

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: TRichMemo

Beitrag von Heinrich Wolf »

Hallo,

ich verwende TRichMemo in meiner Anwendung calprint unter Windows, aber nicht unter Linux. Siehe http://www.Wolf-Fuerth.de/ -> "Technik und Gratis Software" -> "Kalender" und "Download Übersicht" -> calprint.src.zip . Die Anwendung verwendet ein verborgenes RichMemo, füllt es mit mehr als 1 DIN-A-4-Seite farbigem und formatiertem Text und speichert es als *.rtf Datei. TRichMemo kann unter Linux nichts in einer *.rtf Datei laden und speichern. Daher habe ich es beim Compilieren unter Linux deaktiviert. Auch das Füllen des TRichMemo ist knifflig. Mit der Text-Längen-Property des TRichMemo bin ich nicht klar gekommen. Ich hänge Stück für Stück Texte an das TRichMemo an. Dabei merke mir die UTF8Length des Textfragments, summiere diese als Position auf und merke mir die Formatierung. Das ist wichtig, damit Umlaute nicht zu einer Verschiebung der Formatierung führen. Erst wenn der gesamte Text unformatiert komplett ist, wende ich die gemerkte Formatierung an.

Siehe auch http://bugs.freepascal.org/view.php?id=19579, http://bugs.freepascal.org/view.php?id=19624 und http://bugs.freepascal.org/view.php?id=15894.

Heiner

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: TRichMemo

Beitrag von Komoluna »

Hallo

ich hab mir das Package TRichMemo mal installiert...
aber jedesmal wenn ich es auf die Form droppen will hängt Lazarus kurz, und dann schmeißt es ne Fehlermeldung:
Failed to create win32control, error 87 : Falscher Parameter.
ich habe den gesamten Quelltext abgesucht, aber nicht wirklich was gefunden...
Hülfäää...

LG Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

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)

Re: TRichMemo

Beitrag von pluto »

Ich glaube, für Windows ist TRichMemo noch nicht ausgelegt, oder? Jedenfalls klingt es da nach.
MFG
Michael Springwald

Antworten