Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
28. Mär 2009
Was du sicherlich weißt: Windows funktioniert mit Botschaften, die im Hintergrund zwischen Fenstern ausgetauscht werden. Dafür hat ein Programm eine Botschaftenwarteschlange, in der die Botschaften ankommen. Von dort werden sie dann abgeholt und ausgewertet.
Solange du jetzt Code ausführst, können diese Botschaften nicht verarbeitet werden. Deshalb sieht es für das System so aus als wäre die...
Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
28. Mär 2009
Dann zeig doch einfach einmal den Code, der bei dir währenddessen so lange dauert, dass eine Fortschrittsanzeige nötig ist. Da gibts nicht viel zu ändern dann.CopyFile(...)
ProgressBarX.Position := 20;
Application.ProcessMessages; // damit dein Programm noch reagiert
CopyFile(...)
ProgressBarX.Position := 50;
Application.ProcessMessages; // damit dein Programm noch reagiertUnd so weiter. Du...
Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
28. Mär 2009
Das heißt ja nicht, dass die so lange dauert, dass du eine Fortschrittsanzeige brauchst. ;-)
Aber generell habe ich ja gesagt wie. Kopiere die erste Datei, setz die Position z.B. auf 20, kopiere die zweite, setz auf 50, die dritte 80, Registryeinträge machen, einrichten, usw., 95 usw.
Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
27. Mär 2009
Mach doch erst einmal deinen normalen Ablauf fertig. Schau, ob der so lange dauert, dass du eine Fortschrittsanzeige brauchst (denn die braucht auch Zeit), und wenn ja, dann füge diese ein.
Wenn du den Quelltext ansonsten fertig hast, dann musst du dazwischen ja nur an günstigen Positionen die Position der ProgressBar setzen.
Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
27. Mär 2009
Es ist ein Versuch möglichst gut die Dauer der einzelnen Vorgänge vorherzusehen und so den Fortschritt möglichst gut zu visualisieren.
Da man zwischen manchen Vorgängen kein Positionsupdate machen kann und manche unerwartet lange dauern, springt die Anzeige meistens etwas. Man muss eben versuchen das möglichst gut hinzubekommen.
Forum: Sonstige Fragen zu Delphi
Delphi
by jaenicke,
27. Mär 2009
Wenn die Position der ProgressBar den Ladefortschritt anzeigen soll, dann musst du die Position auch beim Laden entsprechend setzen.
Zum Beispiel bei einer Kopierroutine:
Erste Datei kopieren
Position der ProgressBar erhöhen
Nächste Datei kopieren
Position der ProgressBar erhöhen
...
Dabei muss man eben schauen, welcher Vorgang anteilig wie lange dauert und dementsprechend die Position...