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 :

Thread qui ne se lance pas


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut Thread qui ne se lance pas
    Bonjour,

    j'ai un problème avec une de mes applications qui a un thread qui ne se lance que sur certaines machines et pas sur d'autres!
    Il se lance parfaitement sur mon pc, sur celui d'une collègue, qui n'a aucun outil de developpement, par contre, cela ne fonctionne pas du tout sur 2 pc identiques à celui de ma collègue!

    J'avoue que je ne vois vraiment pas de quoi il pourrait s'agir!

    Je vous joins le code

    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
    36
    37
     
     
    type
      TUpdateThread = class(TThread)
      private
        { Déclarations privées }
      protected
        procedure Execute; override;
      end;
     
      // Déclaration dans les variables générales du unit
      ThreadUpgrade : TUpdateThread;
     
      // Dans un evenement OnClick d'un bouton
      ThreadUpgrade := TUpdateThread.Create(false);
     
     
    procedure TUpdateThread.Execute;
    var
     Fs, TFs : TFileStream;
     MainXml, Ms, Tms : TMemoryStream;
     LocalNode,LibraryNode,ServerNode, NewSeries : IXMLNode;
     LibraryUrl, LibraryName, FileName, TmpDir, LibraryList, ZipFileName, EgrDirectory, LibraryCode : String;
     LocalName, LocalVersion, ServerName, ServerVersion, Alphanum, Alphanum2 : String;
     LibOFML : array of string[2];
     i, j, NbrLib, GridRow, LibraryNameRow, SeriesInLibrary : Integer;
     LibServerConfig, LibServerUrl, LocalSeriesNotExist : Boolean;
     SeriesUrl: Boolean;
     IniConfig : TIniFile;
     R : TRect;
    begin
     
      ShowMessage('started');
       ....
       ....  
     
    end;
    Le contenu de l'execute est long, raison pour laquelle je l'ai supprimé; mais le plus important c'est la première fonction showmessage n'apparait même pas!
    Mais quelle bordel !

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThreadUpgrade := TUpdateThread.Create(false);
    tu le fais à quel moment ?
    Dans le Initialization de l'unité ? Dans un Bouton !

    Sinon, le ShowMessage dans un Thread, ce n'est pas le plus prudent pour un test (je pense à une éventuelle EOSError Code 1400), essaye une écriture dans un fichier ou un Windows.MessageBox

    Sinon, tu sembles avoir beaucoup de code (vu les variables), un découpage n'était pas possible ? tu peux tout à faire faire des méthodes qui remplissent des membres privés de la classe pour être utiliser dans une autre méthode par la suite, ...
    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 régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Lol, grillé, je mettais justement mon post à jour car il manquait en effet quelques informations.

    Si il est possible de faire du découpage, je dirais même que tout le code doit être revu (ce code traine depuis 3 ans et est mis à jour de temps en temps).
    Malheureusement je n'en ai pas le temps!
    Je voudrais d'ailleurs passer la méthode en OO (car je commence seulemenet à programmer OO)
    Mais quelle bordel !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message

    Sinon, le ShowMessage dans un Thread, ce n'est pas le plus prudent pour un test (je pense à une éventuelle EOSError Code 1400), essaye une écriture dans un fichier ou un Windows.MessageBox
    AH c'est fou ca, le Windows.MessageBox fonctionne, par contre, plus rien ne se passe après

    Tu as une idée de ce que ca pourrait être?
    Mais quelle bordel !

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Le Problème c'est que tu ne peux pas débugger, sur une machine sans Delphi, il pourrait te manquer les paquets d'execution mais tu aurais le problème dès le lancement de l'application ! et il me semble que des postes sans Delphi fonctionne !

    Que fais-tu après le MessageBox ? Tu ouvre le FileStream ? le fichier est manquant ? tu n'as pas les droits ? le Fichier Ini est manquant ? ou pas au bon endroit (attention aux raccourcis qui change le répertoire de démarrage)
    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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Visiblement, le code a quand même l'air d'être lu jusqu'a un certains moments, je vais essayer de trouver ou cela bloque!

    Merci de ton aide
    Mais quelle bordel !

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 213
    Points : 109
    Points
    109
    Par défaut
    Dans notre département, on a l'habitude d'élire de la charlot du jour ... Et bien aujourd'hui, c'est moi!

    L'erreur n'avait rien a avoir avec le code, c'était une DLL que j'avais oublié de mettre à jour ...
    Mais quelle bordel !

Discussions similaires

  1. Thread qui ne se lance pas
    Par pommefrite dans le forum Général Python
    Réponses: 3
    Dernier message: 25/06/2014, 19h46
  2. Label dans une fenêtre lancée par un thread qui ne s'affiche pas !
    Par totojava dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 23/01/2011, 15h07
  3. Thread qui ne se lance pas
    Par barbiche dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 20/03/2007, 16h06
  4. mmc.exe qui ne se lance pas
    Par r0d dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 27/04/2005, 17h11

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