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

Langage Delphi Discussion :

MessageBoxTimeout et W2K


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut MessageBoxTimeout et W2K
    Bonjour tout le monde

    http://edn.embarcadero.com/article/32736

    Je viens de recevoir un message d'utilisateur, qui suite à la mise à jour d'un programme, ne peut plus installer la nouvelle version.

    Après renseignements, il est sous W2K et la biblio idoine de cet OS ne doit pas être à jour ; même obsolète par rapport à l'appel de la fonction posant souci.

    Voici donc ma question : existe t-il un code propre (sans timer, ni Sleep même non bloquant) afin d'obtenir idem des MessageBox temporisées ?

    Merci d'avance de tout éclairage.

  2. #2
    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
    Un Timer ce n'est pas propre ?
    Au final, un Timer ce n'est qu'un Event pulsé par l'OS !
    En tout cas, c'est la méthode que j'ai utilisé (avec une barre de progression indiquant le délai de fermeture) et ce que j'ai vu ailleurs !

    MessageBoxTimeOut, c'est une API probablement que MS se réserve le droit de modifier quand sa lui chante sans communiquer les évolutions, même la MSDN ne décrit pas cette fonction
    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

  3. #3
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut
    ShaiLeTroll

    Enfin je voulais dire par là que si l'on peut s'en passer, c'est toujours souhaitable.

    Oui mais alors autant passer par un Sleep() non bloquant alors, qu'en penses-tu ?

    Tu vas me dire qu'un Sleep() non bloquant est un timer déguisé

  4. #4
    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
    Un Sleep non bloquant, ça existe ça ?
    En gros faire une boucle genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ElapsedMS(GetTickCount()) > 10000 {milli-secondes} do
    begin
      sleep(1); // en réalité ça attendrait 1.995 ...
      Application.ProcessMessages(); // Faut bien pouvoir cliquer !
    end;
    Franchement, si c'est juste une patience utilisateur, ce n'est pas un code crucial pour les performances !
    Tu me dirais que tu voudrais cadencer une centaine d'objet chacun avec une fréquence différente, je dirais que 100 timers, c'est vilain, mais là, euh ... on s'en fout un peu non ?
    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 Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 288
    Par défaut


    Question Sleep non bloquant, Je pensais à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure WaitProcessMessages(Milliseconds: integer);
      var BeginTime: TDateTime;
    begin
      BeginTime := Now;
      while MilliSecondsBetween(Now, BeginTime) < Milliseconds do
      Application.ProcessMessages;
    end;
    Mais oui après tout tu as raison ; même timer.

    Merci, donc affaire résolue

    J'espère que ce thread servira à plus d'un développeur, qui un de ces jours recevra des utilisateurs furieux ; lors de la mise à jour ça plantera avec message d'InsultBox

    Bref pas de méthode MessageBoxTimeout sous Windows 2000 !

    @+

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

Discussions similaires

  1. Pas d'événement OnClose quand on arrête W2K
    Par Altau dans le forum C++Builder
    Réponses: 9
    Dernier message: 26/01/2009, 18h36
  2. [Débutant][VB 5.0] Obtenir les groupes locaux W2K
    Par Banana_Ultra dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/10/2004, 14h07
  3. [Droits NT/W2K] utilisation de regsvr32
    Par abelman dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 16/09/2004, 22h18
  4. Installation du module DBI pour perl sous W2K
    Par tomcat dans le forum Modules
    Réponses: 6
    Dernier message: 22/01/2004, 11h54
  5. ctrl+alt+sup et W2k
    Par Lucien dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 26/05/2003, 13h54

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