Um die Übertragung von Stringlist nach HTML geht es bestimmt nicht. Die Schnittstelle ist ein String.
Wenn, dann besteht der Fehler im HTML Panel bei SetHTMLFromString.
Wahrscheinlicher ist aber immer noch, dass dein Code einen (Speicher-) Bock hat, der sich nicht in jeder Situation zeigt,
HeapOverflow/RunError(203) bei dynam. StringList [gelöst]
Re: HeapOverflow/RunError(203) bei dynamischer StringList
Was ist denn?:
Ein einfacher Test:Gibt bei mir jedenfalls keine Speicherlecks.
Beziehungsweiseand4more hat geschrieben:Code: Alles auswählen
makeContent(Sender);
Dann poste es doch hier, so wie es ist, wenn du es nicht weiter reduzieren kannst.and4more hat geschrieben:es handelt sich im Prinzip um ein ganz simples Programm, welches im Grunde nur aus einem Hauptfenster mit Notebook-Tabs und Eingabefeldern besteht. Diese werden in einer StringList abgelegt und das Ganze in ein Memofeld und ein HTML-Feld übertragen
Ein einfacher Test:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var
HTML: TStringList;
begin
HTML := TStringList.Create;
HTML.Add('<html><body bgcolor="#FF9900">Test Text</body></html>');
IpHtmlPanel1.SetHtmlFromStr(HTML.Text);
HTML.Free;
end;
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: HeapOverflow/RunError(203) bei dynamischer StringList
So, zunächst mal ein dickes 'Tschuldigung für meine lange Abscence, war leider beruflich stark eingebunden und brauchte dann doch etwas Zeit um die guten Ratschläge auszuprobieren und ein paar Tests laufen zu lassen. Zunächst hatte ich den Code so geändert wie michl vorgeschlagen hatte und auch sein Beispiel kompiliert. Beispiel lief wunderbar (Dank an michl), Programmcode führte zu einem Fehler diesmal irgendeine banale Exception. Also hab# ich mir gedacht, dass es wohl möglicherweise nicht am Pascal-Code liegen könnte und kommentierte große Teile des HTML-Codes aus. Und siehe da, das Programm stellte auch die HTML-Teile wieder korrekt dar. Also habe ich den HTML-Code durch eine Validator geschickt und korrigiert und jetzt arbeitet es zumindest bei der Darstellung des HTML-Codes korrekt, allerdings hab' ich plötzlich Probleme mit der Druckausgabe über IpHtml, aber das ist ein anderes Thema
Leider scheint der HTML-Parser von IpHtml fehlerhaften HTML-Code zur Laufzeit oder bei Kompilierung nicht abzufangen, so dass dann solche unklaren Laufzeitprobleme auftreten. Also im Falle des Falles auch mal da dran denken. Ich betrachte das Thema als gelöst und darf mich nochmal ganz herzlich bei allen für die Mühe bedanken. Ciao

Leider scheint der HTML-Parser von IpHtml fehlerhaften HTML-Code zur Laufzeit oder bei Kompilierung nicht abzufangen, so dass dann solche unklaren Laufzeitprobleme auftreten. Also im Falle des Falles auch mal da dran denken. Ich betrachte das Thema als gelöst und darf mich nochmal ganz herzlich bei allen für die Mühe bedanken. Ciao
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
-
- Beiträge: 207
- Registriert: Do 15. Nov 2012, 19:13
- OS, Lazarus, FPC: Windows 10, Manjaro Linux, Lazarus 1.6.4 (32/64 Bit)
- CPU-Target: 32 Bit / 64 Bit
Re: HeapOverflow/RunError(203) bei dynam. StringList [gelöst
Leider, leider habe ich festgestellt, dass die Kompilierung auf 64 Bit eingestellt war und es daher klappte
Nach Umstellung auf 32 Bit wieder der gleiche Fehler.
Also war es doch nicht der HTML-Code. Und so habe ich jetzt im Sinne eines Workarounds auf Lazarus Version 1.4.4 downgegraded und jetzt klappt wieder alles. Für mich bedeutet das in der Konsequenz, dass ich in Zukunft vor einem Upgrade erst mal testen muss, ob alles noch funktioniert. War da wohl etwas zu naiv. Danke noch mal an Alle für die Hilfe.

Also war es doch nicht der HTML-Code. Und so habe ich jetzt im Sinne eines Workarounds auf Lazarus Version 1.4.4 downgegraded und jetzt klappt wieder alles. Für mich bedeutet das in der Konsequenz, dass ich in Zukunft vor einem Upgrade erst mal testen muss, ob alles noch funktioniert. War da wohl etwas zu naiv. Danke noch mal an Alle für die Hilfe.
Lazarus 1.6.4 32-Bit + 64-Bit, Windows 10 64-Bit, Manjaro Linux 64-Bit
Re: HeapOverflow/RunError(203) bei dynam. StringList [gelöst
Wäre gut, wenn du hier ein Minimalbsp. hochladen könntest. Ein Bug kann nur gefixt werden, wenn er bekannt ist.
Code: Alles auswählen
type
TLiveSelection = (lsMoney, lsChilds, lsTime);
TLive = Array[0..1] of TLiveSelection;