Hallo Leute!
Folgendes Problem:
Ich habe ein Formular mit einer Kundenliste in einer ListView (vsReport).
Dieses Formular rufe ich mittels einer public-function innerhalb der
Unit aus dem Hauptprogamm auf:
Delphi-Quellcode:
function TDk32KundenauswahlWnd.Kundenauswahl(var Kundendaten : TMyDbKundenDaten) : Byte;
begin
Result := Self.Showmodal;
Kundendaten := gActKundendaten;
end;
Funktioniert prima soweit!
Aaaaaber...
Wenn ich in der Listview einige Tausend Einträge habe, dann vergehen zwischen dem 'ShowModal'-Aufruf und dem auslösen des OnShow-Ereignisses der Form einige Sekunden!
Je mehr Einträge in der ListView, umso größer die Verzögerung!
Auf einem typischen NetBook mit Atom-Prozessor und 2 Gb
Ram - und darauf muss es laufen - bei 4.000 Einträgen etwa 12 Sekunden!
Die Daten werden NUR beim ERSTEN Aufruf des Formulars aus einer Datenbank eingelesen, was zu meiner Verwunderung sogar schneller geht (5-6 Sekunden bei 4.000 Einträgen), als das spätere wiederaufrufen des Formulars ohne neu befüllen der ListView!!!
Zeige ich das Formular aber NonModal und benutze statt 'Close' 'Hide', so geht alles blitzschnell ohne spürbare Verzögerung!!!
Eigentlich mus das Form aber Modal sein, damit der Benutzer keinen Mist bauen kann...
Weiss irgendjemand Rat?
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)