Relancer un programme.

Résolu
hainlesgens Messages postés 57 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 10 février 2009 - 14 janv. 2009 à 14:33
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 15 janv. 2009 à 16:52
bonjours à tous. je viens de créer une fonction pour supprimer de ma DBle client sélectionné dans une listview. quand je clic sur le bouton "supprimer",
petite demande de confirmation. si "annuler", rien et revenir mais si "Supprimer" je voudrais qu'il me relance le programme entierement  pour remettre à jours toute les listviews Remplies automatiquement au lancement du programme qui concerne les clients et leur différentes cascades dans la DB.
je connais la fonction
Application.terminate;

mais dans ce cas ça ne serviras à rien. et la fonction Application.restore mais ça ne marche pas non plus.
 Merci par avance.

7 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
14 janv. 2009 à 23:10
"je voudrais qu'il me relance le programme entierement  pour remettre à jours toute les listviews Remplies automatiquement au lancement du programme"

beurrkkkk, c'est pas tres joli joli comme fonctionnement ca !
si tes listview sont remplies au demarrage, il doit bien y avoir un bout de code qui fait ce traitement. Alors pourquoi ne pas rappeler ce bout de code au lieu de relancer l'application complete ?
t'imagine si t'etais obligé de relancer delphi a chaque fois que tu change de projet ou que tu ouvre un nouveau fichier ? dans ce cas la, autant revenir a la machine a ecrire
3
hainlesgens Messages postés 57 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 10 février 2009
15 janv. 2009 à 10:01
non c'est bon en fait. j'ai changer ma façon de déclaré et de chargé ma DB... il est vrai que tout chargé dans le Formcreate n'est pas très malin... je le charge maintenant individuellement selon le bouton sur lequel je click

c'est fou comme un apprenti codeur peu faire des erreurs aussi grosse que lui
3
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 janv. 2009 à 16:33
Application.Terminate termine le thread principal (le processus, par conséquent) de ton application.

Application.Restore redonne la focalisation la fiche principale, et restaure la fenêtre principale si elle était minimisée. Application.Restore n'a rien a faire avec l'ouverture de programme.

Il faudra peut-être créer une tâche planifiée Windows ?

Cordialement, Bacterius !
0
hainlesgens Messages postés 57 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 10 février 2009
14 janv. 2009 à 16:54
qu'est-ce qu'une tache planifié? et est-ce long à faire? parce qu'il me reste seulement 3 semaines pour finir mon projet pour l'entreprise qui m'a pris en stage :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 janv. 2009 à 17:12
Ah mince, si c'est pas que pour toi (une tâche planifiée permet de dire à Windows d'effectuer une certaine action à un certain moment ... mais par le biais de ton application c'est ... assez difficile !).
Si tu veux relancer ton application sur le coup, tu peux eventuellement lancer une application secondaire qui doit relancer ton programme dans 3 secondes par exemple, fermer ton programme, puis attendre les 3 secondes ?

Cordialement, Bacterius !
0
hainlesgens Messages postés 57 Date d'inscription dimanche 24 décembre 2000 Statut Membre Dernière intervention 10 février 2009
15 janv. 2009 à 09:56
je pense que oui ça peu être la meilleur solution et la moins complexe.
seul problème. comment puis-je mettre une variable sur une partie de code et la rappelée plus tard dans une autre Unit.pas ?

parce que j'ai unit1qui s'appel Uaccueil.pas, Unit2 c'est UValid.pas .

sur le Formcreate de ma Uaccueuil, j'ai :

procedure TGestion.FormCreate(Sender: TObject);
var i :integer;
begin
...  //beaucoup de fonction appeler comme celle qui suit

... //Encore d'autres fonctions
...// et encore.

Clients:=tklistobject.create(tclient);
    clients.loadFromDB(ADOConnection1,'select * from client');
    clients.showInComboBox(CbSelectClient);
end;

(pour ce qui est de showinComboBox, LoadfromDB et TklistObject. Ce sont des fonctions crées par mon prof d'Alsi pour faciliter les transfert et l'écriture des liens de connection vers une DB.)

et dans mon UValid,
il faut donc que je rappels ma fonction variable après l'envoi de la requete de suppression  la DB

procedure TFvalid.Button1Click(Sender: TObject);
var
listeClients:TKListObject;
i:integer;
begin
  listeClients:=TKListObject.create(TClient);
  for I := 0 to gestion.lvDelClient.Items.Count - 1 do
    begin
    if gestion.lvDelClient.Items.Item[i].Checked then //si les Checkbox sont cochés alors

      begin
        TCLient(gestion.lvDelClient.Items.Item[i].data).RecordStatus:= [rsDelete]; //supprimé de la DB
      end;
    gestion.client.saveToDB(gestion.ADOConnection1);// connection a la DB et sauvegarde
    end;
    gestion.lvDelClient.DeleteSelected;
    Gestion.CbSelectClient.Clear;
    Gestion.LvSelectClient.Clear;
end;

je devrais la réécrire ou ma variable? et surtout comment l'intégré a ma 1ère form?
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
15 janv. 2009 à 16:52
Ca dépend de la taille du codeur !

Cordialement, Bacterius !
0
Rejoignez-nous