Der Grund dafür ist klar, denn wenn dann mit der Zeit so 40000 Termine eingetragen sind, und für die Historie eine
SQL-Abfrage abgesetzt wird, benötigt der
SQL-Server schon allein 5-7 Sekunden um die Daten bereit zu stellen.
Ist die Datenmenge so groß das es so lange dauert? Sollte normalerweis in << 1s möglich sein wenn Bandbreite genügend da ist bzw. Server korrekt konfiguiert. Evtl. nicht alle Detaildaten laden die man eh nicht sofort sieht.
Mein einziger erfolgversprechende Lösungsansatz wäre es, die
SQL-Abfrage in einen Thread auszulagern, ...
Sollte kein Problem sein. Manche
DB-Zugriffskompos erfordern das du dann auch im Thread eine eigene Connection hast.
... von diesem dann nach dem Anzeigen der Terminform unabhängig von Usereingaben das Listview füllen zu lassen
Die Listview wirst du nicht über den Thread füllen können da die
VCL bzw. die zugrunde liegenden Win-Controls eine Thread-Affinität haben. Du darfst sie nur im erzeugenden Thread verwenden.
Sinnvoller ist hier die Daten en block/blockweise zurück an die Hauptapp zu geben und dann die Listview im Virtual Modus zu betreiben.
Windows Vista - Eine neue Erfahrung in Fehlern.