hainlesgens
Messages postés57Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention10 février 2009
-
14 janv. 2009 à 14:33
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDerniè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.
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 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
hainlesgens
Messages postés57Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention10 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
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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 ?
hainlesgens
Messages postés57Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention10 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 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 ?
hainlesgens
Messages postés57Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention10 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?