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 :

comment faire disparaître un message label.caption apres un certain temps


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    informatitien
    Inscrit en
    Janvier 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatitien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 20
    Par défaut comment faire disparaître un message label.caption apres un certain temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if (edit1.text='123') and (edit2.Text='123') then
    begin
     
     form2.Show   ;
     form1.hide ;
     edit1.Clear ;
     edit2.Clear;
      end
      else
      label1.Caption:=('merci de verifier vos données svp');
    //ce message reste comment le faire disparaître apres 3 ou 4 sec
      end;

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 513
    Par défaut
    Bonjour,
    je pense qu'il faudrait utiliser un Timer ou alors mettre un Sleep puis effacer le Caption (mais c'est bloquant).
    A+
    Charly

  3. #3
    Membre actif
    Homme Profil pro
    informatitien
    Inscrit en
    Janvier 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatitien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 20
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonjour,
    je pense qu'il faudrait utiliser un Timer ou alors mettre un Sleep puis effacer le Caption (mais c'est bloquant).
    A+
    Charly
    merci de votre repence mais je suis désoler je ne suis qu'un débutant le timer j'ai utiliser mais j'ai pas su comment m'est prendre

  4. #4
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 188
    Par défaut
    Citation Envoyé par katassili Voir le message
    merci de votre repence mais je suis désoler je ne suis qu'un débutant le timer j'ai utiliser mais j'ai pas su comment m'est prendre
    Je pense qu'une petite recherche Google : Delphi + TTimer sera suffisante

    Et comme par hasard, on revient ici : https://www.developpez.net/forums/d2...isation-timer/ sur le forum Delphi, un topic qui en parle

    Si tu es débutant, il y a aussi les Tutos sur developpez.com ici : https://delphi.developpez.com/cours/

    C'est surement par là qu'il faudrait commencer, mais c'est fou ce que les jeunes ont du mal à lire de nos jours

  5. #5
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 513
    Par défaut
    Bonjour,

    regarde le Timer pour apprendre, mais tu peux essayer ceci qui est plus simple :

    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
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    if (edit1.text='123') and (edit2.Text='123') then
      begin
    // form2.Show   ;
    // form1.hide ;
        edit1.Clear ;
        edit2.Clear;
      end
    else
      Begin
        label1.Caption := 'Merci de verifier vos données svp';
        Application.ProcessMessages  ;                               // redonne la "main" à Windows
        Sleep(2000) ;                    //  Attente 2secondes
        label1.Caption := '' ;
        Edit1.SetFocus ;                 // Donne le focus à Edit1
      end;
    end;
    A+
    Charly

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    Il y a une démo horloge, si l'on peut changer le texte chaque seconde, le faire disparaître semble simple

    Etape 3 - Utilisation de TTimer pour actualiser TClockLabel à chaque seconde

    Cette démo inclue le TTimer dans le TLabel, on pourrait donc facilement créer un TTemporaryLabel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    type
      TTemporaryLabel = class(TLabel)
      private
        FTimer: TTimer;
        FTimeOut: Integer;
        procedure OnTimer(Sender: TObject);
        procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy(); override;
     
        property TimeOut: Integer read FTimeOut write FTimeOut;
      end;
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    constructor TTemporaryLabel.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
     
      FTimeOut := 2000;
     
      if not (csDesigning in ComponentState) then
      begin
        FTimer := TTimer.Create(AOwner);
        FTimer.OnTimer := OnTimer;
        FTimer.Interval := FTimeOut;
        FTimer.Enabled := False;
      end;
    end;
     
    destructor TTemporaryLabel.Destroy();
    begin
      FreeAndNil(FTimer);
     
      inherited Destroy();
    end;
     
    procedure TTemporaryLabel.OnTimer(Sender: TObject);
    begin
      FTimer.Enabled := False;
      Visible := False;
    end;
     
    procedure TTemporaryLabel.CMTextChanged(var Message: TMessage);
    begin
      FTimer.Enabled := True;
      Visible := True;
     
      inherited;
    end;
    Utilisation à l'arrache

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with TTemporaryLabel.Create(Self)do
      begin
        Parent := Button1.Parent;
        Left := Button1.Left + Button1.Width;
        Top := Button1.Top;
        Caption := 'Toto';
      end;
    end;

    Enfin

    Ne garde pas Form1, Form2, Edit1, Edit2 ... pense à renommer tes composants, c'est bien pour une démo vite fait mais pour un projet sérieux, pense à tout renommer avec un nom métier par exemple MainForm, DetailAdressForm, edName, edRue, edVille ou lblWarning ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre actif
    Homme Profil pro
    informatitien
    Inscrit en
    Janvier 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : informatitien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 20
    Par défaut
    Citation Envoyé par Charly910 Voir le message
    Bonjour,

    regarde le Timer pour apprendre, mais tu peux essayer ceci qui est plus simple :
    j'ai fait qlqs applications avec le timer et c'est pas compliqué
    svp // redonne la "main" à Windows ça signifie quoi ???


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Application.ProcessMessages  ;                               // redonne la "main" à Windows
        Sleep(2000) ;                    //  Attente 2secondes
        label1.Caption := '' ;
        Edit1.SetFocus ;                 // Donne le focus à Edit1
    un grand merci pour votre aide A+

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

Discussions similaires

  1. [Débutant] Comment faire apparaitre le message "Connecté en tant que" et datepicker
    Par Moutombi dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/12/2011, 11h44
  2. COMMENT faire apparaitre des messages facemessage
    Par Philcmoi dans le forum JSF
    Réponses: 5
    Dernier message: 01/09/2010, 12h54
  3. Comment faire clignoter un message.
    Par dahmane2007 dans le forum VB.NET
    Réponses: 2
    Dernier message: 21/09/2008, 05h25
  4. Réponses: 1
    Dernier message: 22/08/2006, 12h07
  5. Comment fermer une popup après un certains temps ?
    Par magic8392 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/10/2005, 12h06

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