der geschwindigkeitsverlust liegt in der schlechten umsetzung der Darstellung. Für unser Newsletterprogramm hab ich früher eine normales TListView genutzt (mit Beginupdate-EndUpdate). Damit hat das programm über 2 Minuten geladen. Inzwischen haben wir eine Skinbare Listview programmiert, man müsste also eigentlich von längerne Ladezeiten ausgehen weil ja noch hintergrundbilder etc. dazu kommen. Ergebnis ist aber das mit der neuen Skinbaren Listview das Programm in weniger als 10 Sekunden startet.
Allerdings haben wir auch darauf verzichtet das ganze über TStringlist umzusetzen beim laden, da bei dieser variante immer erst die Zeilenumbrüche gesucht werden müssen. Wir haben einfach immer die länge der zeile und dahinter die eigentliche Zeile gespeichert. Somit kann man beim einlesen einfach mit Stream.Read gleich die gesamte zeile lesen ohne sie später nochmal zu zerlegen müssen.
Manchmal muss man eben einfach das
Rad neu erfinden um es wirklich rund zu bekommen.