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 :

Action lorsque TGauge arrive à 100 D6 Windows 11 64bits


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut Action lorsque TGauge arrive à 100 D6 Windows 11 64bits
    Bonjour à toutes et à tous,

    Pour passer mon temps je relis certaines applications D3 et je me suis toujours demandé si c'était possible en utilisant un composant TGauge si on pouvait lorsque la barre arrive à 100% soit (MaxValue := 100) créer une action comme émettre un bip.

    Merci,

    @+,

    cincap

  2. #2
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 510
    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 510
    Par défaut
    Bonjour Cincap,
    oui, je pense, avec un timer qui surveille la position du TGauge
    A+
    Charly

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut
    @ Charly910, merci de ta réponse,

    La partie timer est en ordre, le TGauge indique bien la progression de 0% à 100% mais j'aurai aimé avoir une indication supplémentaire (Beep par ex) lorsque le TGauge indique 100%.

    J'utilise une commande MCISendString et c'est pour la fin d'un fichier .mid

    C'est un problème que je n'arrive pas à solutionner et pourtant j'ai testé plusieurs solutions.

    @+,

    cincap

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    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 086
    Par défaut
    Le TGauge ne progresse pas tout seul, suffit de mettre un PlaySound SND_ASYNC au moment où c'est la Gauge est modifié à 100%

    Montre un extrait simplifier de la boucle qui fait avancer la TGauge

    un truc genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gauge.Progress := Gauge.Progress + 1;
    //if Gauge.PercentDone = 100 then
    if Gauge.Progress = MaxValue then
      PlaySound('MySound.wav', 0, SND_ASYNC);
    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

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 582
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 582
    Par défaut
    @ ShaiLeTroll, bonjour et merci de ta réponse,

    Comme je l'ai précisé à Charly910, tout ce code est déjà fonctionnel, mon TGauge progresse jusqu'à la fin de lecture du fichier et indique 100%.

    Ce que je cherche c'est lorsque le TGauge arrive à 100% c'est d'obtenir une indication supplémentaire comme soit un beep soit un message et c'est sur ce point que je bute.

    Si ce n'est pas faisable pas de problème.

    @+,

    cincap

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    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 086
    Par défaut
    Ma réponse correspond à ce besoin "si 100 alors Son"
    C'est exactement le code fourni, quel est le problème ?

    Citation Envoyé par cincap Voir le message
    Comme je l'ai précisé à Charly910, tout ce code est déjà fonctionnel, mon TGauge progresse jusqu'à la fin de lecture du fichier et indique 100%.
    Oui, c'était clair, si vous sentez le besoin de le repéter c'est que ma réponse n'a pas été comprise
    Le plus simple c'est de fournir votre code !

    Montrez votre code de progression et de tentative de Son.
    Avez-vous simplement tenter un TLabel ou un ShowMessage ?

    TLabel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gauge.Progress := Gauge.Progress + 1;
    //if Gauge.PercentDone = 100 then
    if Gauge.Progress = Gauge.MaxValue then
      LabelPourGauge.Caption := 'Terminé';
    ShowMessage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gauge.Progress := Gauge.Progress + 1;
    //if Gauge.PercentDone = 100 then
    if Gauge.Progress = Gauge.MaxValue then
      ShowMessage('Terminé');
    PlaySound
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gauge.Progress := Gauge.Progress + 1;
    //if Gauge.PercentDone = 100 then
    if Gauge.Progress =  Gauge.MaxValue then
      PlaySound('MySound.wav', 0, SND_ASYNC);
    Et votre foncion PlayMid ( à base de mciSendString)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Gauge.Progress := Gauge.Progress + 1;
    //if Gauge.PercentDone = 100 then
    if Gauge.Progress =  Gauge.MaxValue then
      PlayMid('MySound.mid');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure PlayMid(const AMidiFile: string; AAsynchrone: Boolean = True);
    var
      VCmd: string;
    begin 
      VCmd := 'play ' + AMidiFile;
      if not AAsynchrone then
        VCmd := VCmd + ' wait';
      MCISendString(PChar(VCmd), nil, 0, 0);
    end;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure PlayMid(const AMidiFile: string; AAsynchrone: Boolean = True);
    var
      VCmd: string;
    begin
       MCISendString(PChar('close midibeep'), nil, 0, 0);
       MCISendString(PChar('open ' + AMidiFile+ ' alias midibeep'),nil , 0, 0);
       VCmd := 'play midibeep';
       if not AAsynchrone then
         VCmd := VCmd + ' wait';
       MCISendString(PChar(VCmd), nil, 0, 0);
      if not AAsynchrone then
        MCISendString(PChar('close midibeep'), nil, 0, 0);
    end;

    Il faut mettre juste après la modification de la propriété Progress du TGauge
    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

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

Discussions similaires

  1. Firebird 2.5.4.26856 usage disque 100% sous Windows 10 64bits
    Par g_d_u_m dans le forum Administration
    Réponses: 19
    Dernier message: 22/01/2017, 12h44
  2. Action lorsque Drop completed
    Par Gaaaga dans le forum Flex
    Réponses: 3
    Dernier message: 07/03/2008, 09h32
  3. Réponses: 2
    Dernier message: 28/01/2008, 12h41
  4. [MySQL] Effectuer une action lorsque ON DUPLICATE KEY
    Par gforce dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/01/2007, 13h01
  5. Réponses: 4
    Dernier message: 18/05/2006, 15h00

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