Ich habe etwas mit der Zuweisung der Stringlist zum Memo experimentiert. Mit
Memo1.lines.assign(MyStringlist)
oder
Memo1.lines.addstrings(MyStringlist)
ist zwar der Text OK und beide Scrollbars funktionieren korrekt, aber dafür dauert das auch über 20 sec, also keine Option.
Jetzt habe ich mir einen Workaround einfallen lassen. Ich ermittle den Index der längsten Zeile des Memos und weise dann dieser Zeile noch mal ihren eigenen Inhalt zu:
Delphi-Quellcode:
SL:= TStringlist.Create;
try
If GetXMLContent(SL) Then
begin
memo1.Text:= SL.Text;
index := MaxTextWidth(memo1);
Memo1.Lines[index] := memo1.Lines[index];
end;
finally
SL.Free;
end;
Der Code sieht zwar seltsam aus, macht aber genau das, was er soll: Text und beide Scrollbars sind OK, und die Ausführungszeit beträgt deutlich weniger als eine halbe Sekunde und steht auch im richtigen Verhältnis zur Menge der Daten, egal ob sie von Windows oder MacOS stammen. Geht doch!
Wer eine bessere Lösung weiß, möge sich melden. Ich erkläre mein Problem einstweilen für gelöst!
Gruß LP