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

 Delphi Discussion :

Pourquoi une Form ne rafraîchit-elle pas ?


Sujet :

Delphi

  1. #1
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut Pourquoi une Form ne rafraîchit-elle pas ?
    Bonjour à tous

    J'ai des composants sur une Form qui ne rafraîchissent pas. Certains n'ont pas de méthode .refresh ou .update . Notamment des Hint.

    Existe-t-il une commande permettant à tous les composants d'exécuter un .refresh ?

    Merci.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par bvsud Voir le message
    J'ai des composants sur une Form qui ne rafraîchissent pas.
    Des composants visuels mais lesquels ?

    Citation Envoyé par bvsud Voir le message
    Certains n'ont pas de méthode .refresh ou .update . Notamment des Hint.
    Le "hint" est un comportement d'un composant visuel pas un composant en soi, si ce n'est que son affichage se fait via un contrôle fenêtré (encapsulé)...

    Citation Envoyé par bvsud Voir le message
    Existe-t-il une commande permettant à tous les composants d'exécuter un .refresh ?
    En demandant au contrôle fenêtré parent de se rafraichir (car c'est lui qui est responsable du dessin des composants visuels qui lui sont affiliés), à ne pas confondre avec le propriétaire (Owner) responsable lui de la libération des rattachés...
    Philippe.

  3. #3
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    Bonjour (et bonne année )

    Le composant est un JvBallonHint. Ce queje ne comprends pas, c'est qu'il fonctionne aléatoirement.

    Ici, ça marche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Procedure Aff_Hint_Documents;
    begin
     
          Ctrl_Pointe := Form1.Lab_Aff_Dsq_Sauvegarde;
          Form1.JvBalloonHint1.DefaultBalloonPosition := bpRightDown; 
          Form1.JvBalloonHint1.ActivateHint(Ctrl_Pointe, 'Copie en cours', 'SAUVEGARDE DES DOCUMENTS : VEUILLEZ PATIENTER', 100000);
     
    end;
    Là, ça ne marche pas : le ballon reste totalement vide (son icône comprise) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Procedure Aff_Hint_Telechargements;
    begin
          Ctrl_Pointe := Form1.Btn_Telechargements; // Ctr_Pointe : type TControl
          Form1.JvBalloonHint1.DefaultBalloonPosition := bpRightDown;
          Form1.JvBalloonHint1.ActivateHint(Ctrl_Pointe, 'Copie en cours', 'SAUVEGARDE DES TELECHARGEMENTS : VEUILLEZ PATIENTER', 100000);
     
    end;
    C'est ça qui est bizarre... Aucun moyen de forcer l'affichage ?

    Donc, avoir introduit un TTimer pour rafraîchir la form (durant la copie) n'a pas d'effet sur un Hint ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Timer_RaffraichirTimer(Sender: TObject);
    begin
          Form1.Update;         
    end;
    Il rafraîchit pourtant la form elle-même lors d'un appel à ShFileOPeration. C'est déjà ça.

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Il est prévu un affichage de 100 secondes ; la procédure Aff_Hint_Telechargements est-elle bien lancée après fin de l'affichage du Hint provoqué par l'appel à Aff_Hint_Documents ? Sinon, essayer un CancelHint avant, pour voir...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    Je passe bien, en mode trace, dans la procédure d'affichage. Je vais vérifier avec le ConcelHint avant d'appeler.

    Qd ça ne larche pas, voici l'affichage :



    L'ajout du TTimer a réglé le problème de rafraîchissement de la Form.

  6. #6
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    Alors, avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Procedure Aff_Hint_Bureau;
    begin
          Form1.JvBalloonHint1.CancelHint; 
          Ctrl_Pointe := Form1.Lab_Aff_Dsq_Sauvegarde;
          Form1.JvBalloonHint1.DefaultBalloonPosition := bpLeftDown;
          Form1.JvBalloonHint1.ActivateHint(Ctrl_Pointe, 'Copie en cours', 'SAUVEGARDE DU BUREAU : VEUILLEZ PATIENTER', 100000);
    
    end;
    j'ai encore ceci :



    Mais sur une autre procédure, ça a l'air de marcher... C'est bizarre.

  7. #7
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut
    C'est résolu !

    Il suffisait de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
          Form1.JvBalloonHint1.CancelHint;   
          Ctrl_Pointe := Form1.Btn_F_Config; 
          Form1.JvBalloonHint1.DefaultBalloonPosition := bpRightDown;
          Form1.JvBalloonHint1.ActivateHint(Ctrl_Pointe, 'Copie en cours', 'SAUVEGARDE DES FICHIERS DE CONFIGURATION', 100000);
          Application.ProcessMessages;
    Techniquement parlant, j'aimerais comprendre pourquoi... Mais c'est résolu.

  8. #8
    Membre régulier

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 536
    Points : 121
    Points
    121
    Par défaut [RESOLU]
    Citation Envoyé par bvsud Voir le message
    Bonjour à tous

    J'ai des composants sur une Form qui ne rafraîchissent pas. Certains n'ont pas de méthode .refresh ou .update . Notamment des Hint.

    Existe-t-il une commande permettant à tous les composants d'exécuter un .refresh ?

    Merci.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2012, 08h50
  2. trajectoire d'une forme qui ne fonctionne pas
    Par kaya 59 dans le forum VBA PowerPoint
    Réponses: 13
    Dernier message: 02/08/2008, 10h27
  3. Réponses: 3
    Dernier message: 04/03/2007, 09h34
  4. Réponses: 4
    Dernier message: 19/08/2006, 22h58
  5. [C#]Afficher une forme sans qu'elle se ferme
    Par gilles641 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2006, 12h25

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