![]() |
Richedit: Alte Hyperlinks verschwinden
Hi,
Habe nen Class-Helper für TRichedit geschrieben mit einer Methode:
Delphi-Quellcode:
Soweit, sogut. Allerdings verschwindet Link x-1 beim erstellen von Link x. :gruebel:
procedure TRicheditLink.SelectionToLink;
var CF: TCharFormat; begin FillChar(CF2,SizeOf(CF2),0); CF.cbSize:=SizeOf(CF2); CF.dwMask:= CFM_LINK; CF.dwEffects := CFE_LINK; SendMessage(Handle,EM_SETCHARFORMAT,SCF_SELECTION,LParam(@CF)); end; Beispiel ('Test' soll "gelinkt" werden)
Delphi-Quellcode:
Add('Test');
// SelectionToLink (mit dem zuletzt hinzugefügten) Ergebnis Test
Delphi-Quellcode:
Add('Test');
// SelectionToLink (mit dem zuletzt hinzugefügten) Add('Test'); // SelectionToLink (mit dem zuletzt hinzugefügten) Ergebnis Test Test Gibts dazu ne Erklärung + Lösung? |
Re: Richedit: Alte Hyperlinks verschwinden
Ich schau jetzt gerade nicht in die VCL-Sourcen, aber es könnte daher kommen, dass CFE_LINK nicht in RTF dargestellt werden kann, also ein temporäres Format ist. Funktioniert es vielleicht, wenn du die Zeilen mit
Delphi-Quellcode:
anstatt mit "Add" hinzufügst?
SendMessage(Handle, EM_REPLACESEL, 0?, PChar(Zeile + #13#10));
|
Re: Richedit: Alte Hyperlinks verschwinden
Hi,
Ich füge eine Reihe bisher zu hinzu:
Delphi-Quellcode:
Ist das nicht ungefähr das, was die Msg auch machen würde?
Lines.Add('');
SelStart := Length(Text); SelText := NewLine; // NewLine parsen und ggf. Links setzen. PS: Hab was neues rausgefunden o.O Also bei mir sollen Stellen der Art #Zahl "gelinkt" werden. Angenommen ich schreiben: Zitat:
Zitat:
Zitat:
Zitat:
|
Re: Richedit: Alte Hyperlinks verschwinden
Hilfe :shock: :?
|
Re: Richedit: Alte Hyperlinks verschwinden
Fällt mir so auf Anhieb nix weiter ein. Hier noch ein paar Dinge, die du versuchen könntest:
Wird der Link auch entfernt, wenn danach noch Text kommt? Wenn nein, einfach ein Leerzeichen dranhängen. "Length(Text)" ist übrigens ziemlich ineffizient, nimm statt dessen lieber GetTextLen. Wie setzt du denn die Links? Genauer gesagt: wie findest du aus der Position im "NewLine" die Positionen für SelStart und SelLength im RichEdit raus? Könntest du statt "Lines.Add('')" auch einfach ein sLineBreak vor "NewLine" hängen? Also
Delphi-Quellcode:
SelStart := GetTextLen;
SelText := #13#10 + NewLine; |
Re: Richedit: Alte Hyperlinks verschwinden
Zitat:
Danke :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz