Zitat:
Nun dauert das ganze sehr lange, weil ich alle ...
Ja und Nein,
es ist nicht nur deswegen.
DisableControls
Und natürlich kannst du auch die jeweiligen Daten für jede ComboBox mit einer Abfrage von der
DB holen, anstatt das aus diesem Dataset auszulesen,
inkl. Sortierung und Gruppierung bzw. Distinct (Doppeltes entfernen).
Autors und Publisher braucht man nur zu machen, wenn noch nichts in der ComboBox steht (beim ersten Mal), denn es ändert sich eh nie wieder (Konstante).
Und das sind nicht zufällig einfache statische oder dynamische String-Arrays?
Delphi-Quellcode:
ComboBox_AddBook_Author.Items.Clear;
ComboBox_AddBook_Author.Items.AddStrings(Const_Autors);
//bzw.
if ComboBox_AddBook_Author.Items.Count = 0 then
ComboBox_AddBook_Author.Items.AddStrings(Const_Autors);
DisableControls kann ich leider nicht einsetzen, weil ich die Datenbank zum Beginn des Programmstarts auf Plausibilität prüfe. Hier Teste ich z.B. auch, ob es in der Datenbankstruktur Änderungen gab. Dazu muss ich auch die Tabelle einmal öffnen, um gelöschte Felder (Field) erkennen zu können.
Die Autoren sind als Array of String deklariert.
Const_Autors : array [ 1 .. 5889 ] of string = ( 'Autor 1', 'Autor 2' .... );
Bei der Verwendung von Deinem Code ergibt sich eine Fehlermeldung:
[dcc32 Fehler] Unit3.pas(212): E2250 Es gibt keine überladene Version von 'AddStrings', die man mit diesen Argumenten aufrufen kann