Autor Beitrag
Nally
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Fr 28.11.08 22:03 
Hallo,

ich schreibe gerade an einem Programm, bei dem der Benutzer eine Datenbankdatei anlegen kann. Sachen drin abspeichern. Wenn der User das Programm wieder aufruft muss er explizit eine der bestehenden Datenbankdateien auswählen.

Die Frage ist nun: Würdet Ihr alle Daten die in verschiedenen DataGridViews in verschiedenen TabPages angezeigt werden in dem Form_Load event laden ?
Mitmischer 1703
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 754
Erhaltene Danke: 19

Win 7, Debian
Delphi Prism, Delphi 7, RAD Studio 2009 Academic, C#, C++, Java, HTML, PHP
BeitragVerfasst: Fr 28.11.08 22:06 
Wenn die Dateien klein sind, wieso nicht? Wenn sie aber groß sind, würde ich erst laden, wenn man es wirklich braucht. Wenn du es aber im Loadevent der Form machst, arbeite nicht mit Forms, die noch nicht initialisiert wurden!

_________________
Die Lösung ist nicht siebzehn.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 22:42 
Alles was ich hier sage gilt nur bei längeren Ladezeiten, bei kurzen Ladezeiten kann man auch einfach alles beim Start laden. Was länger ist, ist Definitionssache. Wenn es etwas ist, was ich so oft brauche wie einen Editor, dann eher schon mehr als 1 Sekunde, ist es etwas größeres dann eher ab 5 Sekunden oder so. Das muss man dann abschätzen wie wichtig ein schneller Start für den Benutzer ist.

Wenn die Wartezeit (gefühlt für den Benutzer) zu lang wäre, würde ich das was der Benutzer sofort sieht sofort laden, und die anderen Tabs etc. in einem Thread.

Grundsätzlich hört sich das erstmal schwierig an, aber das ist es gar nicht. Man kann entweder dann den Benutzer immer auf das komplette Laden des Threads warten lassen und auf den anderen Tabs derweil Warteanzeigen schalten oder beim Wechseln eines Tabs dem Thread Bescheid geben, dass er den als nächstes laden soll.
Wenn man das gut macht, dann hat der Benutzer eine schnell startende, immer reagierende, aber trotzdem auch nach dem Start schnell laufende Anwendung (anders als wenn ich später immer lade, wenn ein Tab gewechselt wird, etc.).
Nally Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Fr 28.11.08 22:52 
user profile iconMitmischer 1703 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn die Dateien klein sind, wieso nicht? Wenn sie aber groß sind, würde ich erst laden, wenn man es wirklich braucht. Wenn du es aber im Loadevent der Form machst, arbeite nicht mit Forms, die noch nicht initialisiert wurden!


naja die Datei ist ne sqlite Datenbank ohne Daten 25 KB mit Daten naja kommt auf die optimierten linq Abfragen an ^^ aber selbst wenns 3 sekunden dauert könnte man ja noch ne progressbar einbauen oder meint Ihr nicht? Also mich würde das net stören...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 28.11.08 23:03 
Es kommt eben ganz auf das Programm an, wenn es eins wie ein Browser oder Editor ist, was ich einfach mal so und sehr oft am Tag starte, da stören mich schon 3 Sekunden. Deshalb benutze ich jetzt auch eher Chrome als andere Browser, die eben einfach ziemlich langsam sind im Vergleich, insbesondere IE oder FF.

Wenn es aber ein Programm wie eine große IDE wie Delphi oder ein Videoschnittprogramm ist, dann stört es mich auch nicht so sehr, wenn der Start mal 10 Sekunden dauert. Ganz einfach, weil ich die Programme, gerade Delphi oder Visual Studio zwar sehr lange nutze, aber nicht so oft am Tag neu starte.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 29.11.08 12:35 
user profile iconNally hat folgendes geschrieben Zum zitierten Posting springen:
Würdet Ihr alle Daten die in verschiedenen DataGridViews in verschiedenen TabPages angezeigt werden in dem Form_Load event laden ?

Nur der Vollständigkeit halber (ich weiß nicht, ob ich Dir das in anderem Zusammenhang schon gesagt habe): Das DataGridView ist nicht als Datenspeicher gedacht. Daten werden in aller Regel nicht direkt in ein DGV geladen, sondern in eine Datenmenge (meistens DataSet/DataTable, aber auch List<T> u.a.). Diese Datenmenge wird dann per DataSource oder über BindingSource an das DGV gebunden und zur Anzeige und/oder manuellen Bearbeitung zur Verfügung gestellt.

Im übrigen stimme ich Sebastian zu.

Jürgen