IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

N'oubliez plus de sauvegarder


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut N'oubliez plus de sauvegarder
    Bonjour,

    À la suite de quelques "crashes" de Borland et de perte de quelques heures, j'ai décidé d'investir une petit heure pour me faire un "CodeSaver".

    Voilà, il est presque prêt à être partagé (pour ceux qui le voudrait), mais je n'arrive pas à ramener la fenêtre au premier plan lorsque le délai est écoulée.

    J'ai vue des messages qui portaient sur le sujet, mais je n'ai pas réussit à l'implémenter.

    Ce que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetForegroundWindow(CodeSaver);
    CodeSaver étant le nom de ma form.


    Si vous pouvez me donner un coup de main, ça serait apprécié.

    Voici une petite image de ce à quoi le prog. ressemble.

    merci,

    Antoine

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Regarde du coté de ce lien, c'est du Delphi, mais mis à part la syntaxe, c'est pareil en BCB...

    A quel moment ton application lance-t-elle son décomptage? Lorsque tu sauvegarde ton projet sous BCB?

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut antoinelac
    l'expression attend un Handle donc pour ta Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SetForegroundWindow(Form1->Handle);

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut Handle
    Merci!

    Tout fonctionne, je ne savais pas ce que c'était un handle ( ...). Je vais m'éduquer un peu sur la question!

    Pour répondre à ta question, sat83, mon compteur s'active au démarrage de l'application (c'est ce que tu voulais savoir, n'est-ce pas?).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    __fastcall TCodeSaver::TCodeSaver(TComponent* Owner)
    	: TForm(Owner)
    {
    	int tempsMili; // Temps en milisecondes
     
    	tempsMin = 5; //Temps minimum (pour ne permettre à l'utilisateur de mettre le rappel aux 1 min.
    	tempsInter = tempsMin; //Temps des intervalles
    	tempsRestant = tempsMin; //Temps restant
    	LbInter->Caption = tempsMin; //Affichage de l'intervalle de rappel
    	LbTRestant->Caption = tempsMin; //Affichage du temps restant
    	tempsProgres = 0; //Incrémenteur pour voir la progression à toutes les une minutes
     
    	tempsMili = 1000*60; //à toutes les minutes, le timer décrémente l'affichage du temps restant
    	MonTimer->Interval = tempsMili; //Active le chrono tout en l'ajustant à la valeur de 1 min
     
    }
    Pour mieux comprendre, la portion OnTimer de la composant Timer (MonTimer) doit être affichée.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    void __fastcall TCodeSaver::MonTimerTimer(TObject *Sender)
    {
    	tempsProgres++; //Incrémentation par tranche de 1 min
     
    	if(tempsInter == tempsProgres) //Test si le nombre de minute (tempsProgres) écoulée correspond à l'intervalle de temps pour le rappel.
    	{
    		SetForegroundWindow(CodeSaver->Handle); //Amène l'application en premier plan
    		LbTRestant->Caption = 0; //S'assurer que le temps restant = 0;
    		MonTimer->Enabled = false; //Désactive le chrono
    		ShowMessage("Vous devriez enregistrer votre code"); //Affiche le message de rappel
    		MonTimer->Enabled = true; //réactive le chrono
    		tempsRestant = tempsInter; //rénitialise le temps restant
    		LbTRestant->Caption = tempsRestant; //Affiche le temps restant
    		tempsProgres = 0; //rénitialise le compteur de progression
    	}
    	else //Sinon
    	{
    		tempsRestant--; //décrément le temps restant
    		LbTRestant->Caption = tempsRestant; //affiche le temps restant
    	}
     
    }

    Bon, je me suis rendu compte en commentant mon code, que j'avais une variable de trop, que tempsRestant et tempsProgres pouvait être combiné.

    Enfin, je vais le corriger dans mon code et la version distribué va être optimisée.

    Merci de votre aide!!

    ciao

    antoine

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sauvegarde ne s'exécute plus sans raison visible
    Par tibal dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/03/2008, 11h48
  2. Réponses: 1
    Dernier message: 21/02/2008, 12h52
  3. Réponses: 5
    Dernier message: 14/11/2007, 08h03
  4. Réponses: 6
    Dernier message: 04/01/2007, 16h34
  5. Réponses: 2
    Dernier message: 07/09/2006, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo