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 :

Delphi Free Access Violation


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Delphi Free Access Violation
    Bonjour,

    Quand je ping un poste à la fois tout est correct mais quand je ping deux postes mon Free est en erreur Access VIolation FreeAndNil(client)
    Delphi 2006

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    function TFCoupeAcier_45_90.VerifiePC1(): String;
    begin
        if not(Ping(KARSH1B)) then begin
           if not(Ping(KARSH1)) then
              MessageDlg('Le PC Karsh01 n''a pas accès au réseau.', mtInformation, [mbOK], 0)
           else
              Result := KARSH1;
           end
        else
            Result := KARSH1B;
    end;
    {***************************************************************}
     
    function TFCoupeAcier_45_90.VerifiePC2(): String;
    begin
        if not(Ping(KARSH2B)) then begin
           if not(Ping(KARSH2)) then
              MessageDlg('Le PC Karsh02 n''a pas accès au réseau.', mtInformation, [mbOK], 0)
           else
              Result := KARSH2;
           end
        else
            Result := KARSH2B;
    end;
     
    {***************************************************************}
    function TFCoupeAcier_45_90.Ping(const AHost : string) : Boolean;
    var
      ReplyStatus: TReplyStatus;
      client: TIdIcmpClient;
    begin
      Result := True;
      ReplyStatus := TReplyStatus.Create;
      client := TIdIcmpClient.Create(Self);
        try
          with client do
          begin
            Host := AHost;
            ReceiveTimeout:=200; //TimeOut du ping
            PacketSize := 24;
            Protocol := 1;
            try
              Ping;
     
              if ReplyStatus.ReplyStatusType<>rsEcho Then
              begin
                result := False; //pas d'écho, on renvoi false.
                ShowMessage('ne connecte pas ');
              end;
            except
              Result := False;
            end;
          end;
        finally
            if Assigned(Client)
            then showMessage('Pointeur is not nil')
            else showMessage('Pointeur is nil');
     
             FreeAndNil(client); C'est sur ce free l'erreur
            FreeAndNil(ReplyStatus);
        end;
     
    end;
    Merci

  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
    Comme on n'a ni le code du Ping ni l'appel du Free !
    Impossible de répondre !

    On peut penser que le code du Ping est mal conçu !
    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
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 142
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 142
    Par défaut
    Citation Envoyé par cchasse98 Voir le message
    Bonjour,

    Quand je ping un poste à la fois tout est correct mais quand je ping deux postes mon Free est en erreur Access Violation FreeAndNil(client)
    Delphi 2006
    Je vois dans ton code, juste avant ton message d'erreur, 2 ShowMessage : si tu nous avais dit lequel s'affiche, ça m'aurait évité de poser la question

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Free Access violation
    Bonjour,

    Pour répondre au premier message oui J,ai tout mis le code...

    Les deux messages répondre not nil.

    Merci

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 92
    Par défaut
    Citation Envoyé par cchasse98 Voir le message
    Bonjour,

    Pour répondre au premier message oui J,ai tout mis le code...

    Les deux messages répondre not nil.

    Merci
    le code est incomplet.
    ce que veut dire ShaiLeTroll, c'est qu'il manque les infos suivantes :
    TFCoupeAcier_45_90 est une forme, une classe , ... ?
    comment est appelé VerifiePC1 ? un boutton, un événement, un timer , ???
    ...
    hors contexte, l'analyse et la résolution est difficile, voire impossible

  6. #6
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut Free Access violation
    Bonjour,

    TFCoupeAcier_45_90 est une forme,

    VerifiiePC1 et VerifiePC2 sont appelé si sur ma forme la case à cocher Karsh1 et/ou Karsh2 est activer.

    Merci beaucoup et je vais faire attention d'être plus précise la prochaine fois.

  7. #7
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 935
    Billets dans le blog
    6
    Par défaut
    Je n'ai pas de lumière sur la question, sauf que FreeAndNil n'est-il pas conçu pour éviter les EAV ?

    Sinon, je ne comprends pas ton code avec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReplyStatus := TReplyStatus.Create;
    alors que tu devrais plutôt tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Client.ReplyStatus.ReplyStatusType<>rsEcho
    me semble-t-il...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

Discussions similaires

  1. Programme C vers Delphi, pointeur et Access Violation
    Par sinfoni dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 04/07/2012, 08h19
  2. Delphi 7, Indy 10, IdFTP.pas et Access violation
    Par kernigansnotdead dans le forum Composants VCL
    Réponses: 4
    Dernier message: 04/02/2008, 09h10
  3. Depuis EDI DELPHI : Access Violation
    Par powerlog dans le forum EDI
    Réponses: 1
    Dernier message: 03/08/2005, 16h59
  4. [DELPHI][PROECEDURES STOCKES] Access violation
    Par All Jinx dans le forum Bases de données
    Réponses: 6
    Dernier message: 14/05/2004, 15h57
  5. Réponses: 3
    Dernier message: 22/05/2002, 09h37

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