Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dateien beim Programmstart kopieren (https://www.delphipraxis.net/38386-dateien-beim-programmstart-kopieren.html)

Gambit 18. Jan 2005 15:30


Dateien beim Programmstart kopieren
 
Hallo,

für die Ausführung meines Programms benötige ich bestimmte Datenbankdateien, die des öffters aktualisiert werden.
Ich habe einen Menüpunkt "Datenbankdateien kopieren" und ich habe einen Einstellungsdialog, in dem ich festlegen kann, dass die Dateien beim Programmstart automatisch kopiert werden. Soweit so gut.
Meine Frage ist, wohin ich diese Routine, die beim Programmstart die Dateien kopiert, am besten hinpacke:

Schlecht ist, wenn ich das OnActivate der Form benutze, weil ich öfters auch modale Fenster habe und das OnActivate Ereignis dann beim schließen des modalen Fensters ausgelöst wird und ich da ja dann nix mehr kopieren will.

Benutze ich das OnCreate Ereignis der Form, werden die Dateien schon vor Sichtbarwerden der Form kopiert, was unschön ist, wenn ich die Nachfrage bekomme, ob vorhandene Dateien überschrieben werden sollen, da diese Nachfrage dann ebenfalls vor Erscheinen der Hauptform erscheint.

Wie kann ich das am Besten machen?

Gruß

Gambit

freak4fun 18. Jan 2005 15:35

Re: Dateien beim Programmstart kopieren
 
Du könntest einen Timer benutzen, der nach einer bestimmten Zeit, nach dem Start, die Routine ausführt. :zwinker:

mfg
freak

Luckie 18. Jan 2005 15:39

Re: Dateien beim Programmstart kopieren
 
Umständlicher geht es nicht mehr. :roll:


Was hindert dich daran bei OnActivate zu prüfen, ob die Kopier-Routine schon ausgeführt wurde?
Delphi-Quellcode:
var
  bFirstTime: Boolean;

Gambit 18. Jan 2005 15:43

Re: Dateien beim Programmstart kopieren
 
Ja, daran hatte ich auch schon gedacht, auch daran einen Counter zu machen der jedesmal hochzählt wenn OnActivate eintritt. Dann könnte ich von diesem Integer das Kopieren abhängig machen. Das erschien mir nur alles zu trivial... :oops:

Gruß

Gambit

Gambit 18. Jan 2005 15:55

Re: Dateien beim Programmstart kopieren
 
Habs jetzt mit boolean gemacht, die im OnCreate auf false gesetzt wird, das Kopieren im OnActivate davon abhängig gemacht und nach dem Kopieren im OnActivate auf true gesetzt. Hoffe ich habe da jetzt nicht wieder nen Denkfehler drin, zumindest gehts so erstmal...

Gambit

SirThornberry 18. Jan 2005 16:14

Re: Dateien beim Programmstart kopieren
 
du könntest das ganze natürlich auch im OnCreate machen und bevor du mit dem kopieren anfängst creierst du manuell ein Statusfenster in dem du schon anzeigst das du Daten kopierst.

Gambit 18. Jan 2005 16:19

Re: Dateien beim Programmstart kopieren
 
ja, das Statusfenster habe ich ja schon beim Kopieren aber so wollte ich es halt nicht. Das Hauptfenster soll zu sehen sein...

SirThornberry 18. Jan 2005 16:24

Re: Dateien beim Programmstart kopieren
 
Was auch noch möglich sein müsste wäre das du den kopieren Prozess in eine Extra Methode packst (public vom Mainform). Und dann in der Projectdatei direkt nach dem Create des Mainforms, dieses sichtbar machst und anschließend auch von der Projektdatei aus diese Methode des Mainforms aufrufst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz