Frage zu ATSynEdit URL Highlighter [gelöst]

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Frage zu ATSynEdit URL Highlighter [gelöst]

Beitrag von six1 »

Hi,
wenn ich einem ATSynEdit einen Text mit einer URL zuweise, wird die URL in blau dargestellt. Soweit ok.
Weise ich nun einen Text ohne URL zu, wird die vorherige Highlight Position dennoch beibehalten.

Mache ich da etwas falsch, oder liegt ein Fehler im ATSynEdit vor?

Anbei ein Sample, welches den "Fehler" darstellt.
Zuerst den Button "Set URL Text" anklicken, danach den Button "Set Text Lines"
Dateianhänge
project1.zip
(105.64 KiB) 45-mal heruntergeladen
Zuletzt geändert von six1 am So 28. Nov 2021, 08:26, insgesamt 1-mal geändert.
Gruß, Michael

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

Re: Frage zu ATSynEdit URL Highlighter

Beitrag von theo »

Ich glaube, das fragst du besser im intl. Forum. Hier benutzt anscheinend niemand ATSynedit.
Die einzige andere Frage dazu in diesem Forum stammt auch von dir und da hat auch niemand geantwortet. :wink:

https://lazarusforum.de/viewtopic.php?f ... 3&p=117588

"drüben" ist diesbezüglich mehr los:
https://forum.lazarus.freepascal.org/in ... =atsynedit

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Frage zu ATSynEdit URL Highlighter

Beitrag von six1 »

Oh, ist es schon so weit? Führe ich Selbstgespräche?
:lol:

Danke Theo, mache ich
Gruß, Michael

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Frage zu ATSynEdit URL Highlighter

Beitrag von six1 »

Hu, das war jetzt schnell...
in 30 Minuten im englischen Teil die Antwort vom Entwickler:

Es war ein "Bug". Er hat es gefixt.
AtSynEdit.pas Zeile 2589

Code: Alles auswählen

procedure TATSynEdit.SetText(const AValue: UnicodeString);
begin
  Strings.LoadFromString(UTF8Encode(AValue));
 
  DoCaretSingle(0, 0);
  if Assigned(FMarkers) then
    FMarkers.Clear;
  if Assigned(FAttribs) then
    FAttribs.Clear;
  if Assigned(FLinkCache) then
    FLinkCache.Clear;
 
  Update(true);
end;  
Gruß, Michael

Antworten