Bonsoir,
J'ai un petit souci, on viens de finir un client pour faire un MiniChat au lycée.
Les prof nous avais proposer de faire:
->Un bouton pour se connecter
->Un bouton pour demander si le login est dispo
->Un bouton pour rafraichir les personne logger sur le serveur
J'y suis arrivé cela marche nickel.
Mais en tant que vieux parmi les élèves de 20 ans qui n'ose pas demander des conseils.
j'ai donc demandé comment faire pour que lorsque l'on appuis sur Connecter cela enchaine les 3 fonctions de base Connecter->login->logger.
sachant que l'évènement du socket Read ne se déclenche qu'en sortant de la méthode BoutonConnexionClick.
Le prof m'a proposer d'utilisé
Application->ProcessMessages();
Mais j'ai un gros plantage avec un message d'erreur a la lecture de ce ProcessMessages()
Project LeClient.exe raised exception class EAccessViolation with message 'Access violation at address 40009720 in module 'rtl60.bpl'.Read of address 97D82603'.Process stopped. Use Step or Run to continue;
Avec une case a cocher: View CPU Windows
et avec 2 bouton OK et HELP
Voici un bout de mon code:
Code C/C++ :
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
38
39
40 ClientSocket1->Port = EditPort->Text.ToInt() ; ClientSocket1->Address = EditIP ->Text; // Ouverture du Client IP ClientSocket1->Active = true; Sleep(100); while(!Drapeau) //Drapeau étant un bool pour gérer la réception de la ligne. { Application->ProcessMessages(); Sleep(100); } Sleep(100); if (!Erreur) //Erreur étant un bool pour sortir en cas d'une mauvaise ligne recu { DemanderLogin(); while(!Drapeau) { Application->ProcessMessages(); Sleep(100); } Sleep(100); if (!Erreur) { DemanderLogger(); while(!Drapeau) { Application ->ProcessMessages(); Sleep(100); } if (Erreur) ShowMessage("Erreur de récupération des logger"); } else ShowMessage("Erreur de login"); } else ShowMessage("Erreur de connexion");
J'ai tenté de rajouter des Sleep mais sans effet car de tout maniere cela plante au 1er access de ProcessMessages();
Je précise que je suis sous Seven avec un Core2Duo.
Partager