Einzelnen Beitrag anzeigen

Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#1

ListView bei ShowModal sehr langsam?

  Alt 29. Sep 2011, 18:10
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)
  Mit Zitat antworten Zitat