Bonjour,
tu dis que tu appelles tes fonctions � partir d'un thread, mais il ne faut pas oublier que tout n'est pas autoris� dans le code d'un thread. Dailleurs, lors de la cr�ation d'un thread, l'IDE Borland ajoute syst�matiquement ce petit commentaire :
1 2 3 4 5 6 7 8 9 10 11 12 13
| //---------------------------------------------------------------------------
// Important : les méthodes et les propriétés des objets dans la VCL ne peuvent
// être utilisées que dans une méthode appelée en utilisant Synchronize, par exemple :
//
// Synchronize(UpdateCaption);
//
// où UpdateCaption pourrait être du type :
//
// void __fastcall MonThread::UpdateCaption()
// {
// Form1->Caption = "Mise à jour dans un thread";
// }
//--------------------------------------------------------------------------- |
D'apr�s ce que j'ai lu dans ton code :
ShowMessage ("Base de collecte connectée sur le port " + COM);
--> Cr�er une fonction � part et l'appeler par la m�thode "Synchronize()", ou supprimer dans un premier temps pour faire tes essais.
COM = AnsiString(szPortName);
Les "AnsiString" sont des objets VCL et NE DOIVENT PAS ETRE UTILISES DANS UN THREAD. J'en ai fait l'exp�rience. A remplacer par une chaine de caract�res :
Pour te simplifier les choses, tu pourrais tester ton code � partir d'une fiche et non pas � partir d'un thread.
Partager