Autor Beitrag
Markos
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Di 25.01.05 08:07 
Hallo,

ich habe eine Form mit der Grösse 800x600 auf der sich ca. 25 TEdit Felder befinden, und ca. 8 ComboBoxen sowie 1 TTabsheet. Diese Objekte befinden sich auf einem TPanel.

Wenn ich das TPanel visible schalte in der Laufzeitversion dauert es ca. 1 sek - 1,5 sek. bis das TPanel mit allen Objekten sichtbar ist. Ich rufe beim Visible schalten des TPanels ca. 5 Ado.Querys auf und lade Daten in ComboBoxen. Pro ComboBox sind es aber nur ca. 10 Einträge.

Woran kann es liegen das beim ersten mal das Anzeigen des TPanels so lange dauert? Soll ich die Ado.Tables schon aktiv schalten beim Starten des Programms und die Querys auch am Anfang ausführen und dann in der Routine bei TPanel Visible nur noch ein Query.Update durchführen.

Das Programm hat auch nen Bekannter auf nem Intel P4 3 GHz getestet. Gleiches Phänomen.

Gruß
Markos
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 25.01.05 08:19 
Du hast das schon richtig erkannt. Es sind die Queries. Denen ist völlig wurschst, wieviel MHz dein Rechner hat. Die müssen ihre Daten von der Platte holen.
Folgendes kannst du machen(Ob das bei ADOs geht, weiß ich nicht!):
- Query.DisableControls aufrufen, bevor du die Queries aktivierst. Wenn alle geöffnet sind: Query.EnableControls. Dadurch vermeidest du, dass die verbundenen Komponenten sich ständig aktualisieren.
- Zeig dem Anwender eine Sanduhr.

Wenn du die Queries schon beim Programmstart öffnest, dann ist es da langsam. Das Problem ist dann nur verschoben.
Markos Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Di 25.01.05 10:26 
jasocul hat folgendes geschrieben:

- Query.DisableControls aufrufen, bevor du die Queries aktivierst. Wenn alle geöffnet sind: Query.EnableControls. Dadurch vermeidest du, dass die verbundenen Komponenten sich ständig aktualisieren.
- Zeig dem Anwender eine Sanduhr.

Wenn du die Queries schon beim Programmstart öffnest, dann ist es da langsam. Das Problem ist dann nur verschoben.


Ich würde einen langsameren start mit einem Fenster, das das Programm "Module" lädt in kauf nehmen, wenn danach das Programm schnell arbeitet ?!?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 25.01.05 13:47 
Dann öffne die Queries beim Programmstart.
Das sollte dann dein Problem beheben.