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 :

Problème dans l'éditeur Delphi 7


Sujet :

Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Par défaut Problème dans l'éditeur Delphi 7
    bonjour pourriez vous me dire s'il faut mettre un instruction pour empecher mon code de planté dans l'editeur delphi 7 (ou le paramètrer ?)

    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
     
    program test;
     
    {$AppType CONSOLE}
    uses  IdIcmpClient;
     
    function fnHasInternet: Boolean; {source:https://stackoverflow.com/questions/22389242/delphi-check-internet-connection}
    var iPing: TIdIcmpClient;
    begin
         try
            iPing := TIdIcmpClient.Create;
            iPing.ReceiveTimeout := 500;
            iPing.Host := 'google.com';
            iPing.Ping();
            Result := True;
            iPing.Free;
         except
            Result := False;
            iPing.Free;
         end;
    end;
     
    BEGIN
          IF fnHasInternet THEN
          Writeln('connection internet ... Ok')
          ELSE
          Writeln('pas de connection internet ... Fin');
          writeln('Appuyez sur une touche');
          readln;
    END.
    mon code s'execute quand je lance le fichier en dehors de l'editeur (ici test.exe) (pour ne pas à avoir répeter 'foncionne') mon prog c'est enfui .. avec ses petites pattes (en réponse à SergioMaster))
    (il faut désactive ou activer internet pour voir si le programme foncionne)

    Merci.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 124
    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 124
    Par défaut
    Pourquoi ne pas utiliser une bonne source : Comment effectuer des pings avec Indy ?


    Sinon sur ce code approximatif de Stack Overflow.
    Quelle est l'erreur ?

    Est-ce une notification d'exception ?
    C'est surement le cas, suffit de l'ignorer mais c'est, à longtemps terme, une mauvaise idée pour les autres projets.

    Ce try except est très mal écrit et le retour du Ping n'est pas correctement géré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
         try
            iPing := TIdIcmpClient.Create;
            try
              iPing.ReceiveTimeout := 500;
              iPing.Host := 'google.com';
              iPing.Ping();
              Result := iPing.ReplyStatus.ReplyStatusType = rsEcho;
            finally
              iPing.Free;
            end;
         except
            Result := False;
         end;
    TIdIcmpClient posait des problèmes de mémoire, je ne sais plus lesquels, j'ai depuis très longtemps écrit mon ICMP Echo en API Windows en D6/D7
    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 expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 590
    Billets dans le blog
    1
    Par défaut
    Pourquoi ne pas utiliser directement InternetGetConnectedState pour testé la connexion internet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    uses
      Windows, WinInet;
     
    function IsInternetConnected: Boolean;
    var
      dwFlags: DWORD;
    begin
      Result := InternetGetConnectedState(@dwFlags, 0);
    end;
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

  4. #4
    Invité de passage
    Homme Profil pro
    ‫‬
    Inscrit en
    Août 2025
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : ‫‬

    Informations forums :
    Inscription : Août 2025
    Messages : 57
    Par défaut
    Une autre alternative:

    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
    program test;
     
    {$AppType CONSOLE}
    uses ActiveX, ComObj;
     
    function HasInternet: Boolean;
    const
     NetworkListManager: TGuid ='{DCB00C01-570F-4A9B-8D69-199FDBA5723B}';
    var
       NetManager: OleVariant;
    begin
     try
         NetManager := CreateComObject(NetworkListManager) as IDispatch;
         Result := NetManager.IsConnectedToInternet;
     except
        Result := False;
     end;
    end;
     
    BEGIN
          CoInitialize(nil);
          IF HasInternet THEN
            Writeln('connection internet ... Ok')
          ELSE
           Writeln('pas de connection internet ... Fin');
          writeln('Appuyez sur une touche');
          readln;
    END.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Je ne sais pas si la question était "comment savoir si internet est connecté ou non ?".
    Moi j'ai compris "pourquoi je ne peux pas exécuter ce programme console à partir de l'IDE" (via F9 ou Ctrl+MAJ+F9) ?" ce qui n'est pas du tout la même demande

    Perso, je n'ai jamais eu l'idée de tester un programme console de cette manière, d'un autre côté j'en fait trop peu pour vérifier ce genre de chose.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre Expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 529
    Par défaut
    Bonjour,
    oui, comme dit Shai, il faudrait savoir ou ça plante et avec quelle erreur ...
    A+
    Charly

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Je cite, bien que j'eusse préféré remplacer "marche" par "fonctionne" car je n'ai jamais vu un programme avec des pattes ou des jambes
    Citation Envoyé par ZonZorg Voir le message
    mon code marche quand je lance le fichier en dehors de l'editeur
    Donc, Charly, je pense que c'est bien de l'exécution via l'IDE
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  8. #8
    Invité de passage
    Homme Profil pro
    ‫‬
    Inscrit en
    Août 2025
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : ‫‬

    Informations forums :
    Inscription : Août 2025
    Messages : 57
    Par défaut
    Le code tel qu'il est ne se compile pas TIdIcmpClient est un TComponent son constructeur demande un owner

    TIdIcmpClient.Create(nil)

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Pas d'accord avec toi, la preuve par l'image
    Nom : Capture.png
Affichages : 136
Taille : 162,7 Ko

    d'un autre côté, j'ai donc testé l'exécution via IDE, cela fonctionne comme le montre l'image.
    Un seul point, l'antivirus pourrait expliqué ces quelques secondes de latence. Perso j'ai Norton, s'il n'a pas tiqué, comme le test se déroule dans un répertoire non exclu il a mis quelques secondes pour l'analyse
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Invité de passage
    Homme Profil pro
    ‫‬
    Inscrit en
    Août 2025
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : ‫‬

    Informations forums :
    Inscription : Août 2025
    Messages : 57
    Par défaut
    Une simple différence de versions Indy, sous D7 avec la version originale le code ne se compile pas.

    Comme le montre l'exemple de la Faq proposé par ShaiLeTroll
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        with TIdIcmpClient.Create(Self) do 
        try 
          Host := AHost; 
          ReceiveTimeout := 999; 
          SetLength(R, ATimes); 
    ...

  11. #11
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 590
    Billets dans le blog
    1
    Par défaut
    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
    program test;
     
    {$AppType CONSOLE}
    uses
      IdIcmpClient, IdStack;
     
    function fnHasInternet: Boolean;
    var
      iPing: TIdIcmpClient;
    begin
      iPing := TIdIcmpClient.Create(nil);
      try
        iPing.ReceiveTimeout := 500;
        iPing.Host := 'google.com';
        try
          iPing.Ping;
          Result := (iPing.ReplyStatus <> nil) and (iPing.ReplyStatus.BytesReceived > 0);
        except
          Result := False;
        end;
      finally
        iPing.Free;
      end;
    end;
     
    begin
      if fnHasInternet then
        Writeln('connection internet ... Ok')
      else
        Writeln('pas de connection internet ... Fin');
      Writeln('Appuyez sur une touche');
      Readln;
    end.
    Ça marche très bien
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Par défaut
    pour reponde a 'SergioMaster' et 'XeGregory'
    que se passe-t'il quand vous coupez la connection internet ?

    moi j'ai le message :
    le projet test.exe a provoqué une classe d'exception EidSocketError avec le message 'Socket Error #11001 Host not found'.

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Par défaut
    cela ne répond pas à ma question à savoir si il faut mettre un paramettre dans l'éditeur delphi 7.
    autre example:
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
     
    PROGRAM test2;
     
    {$APPTYPE CONSOLE}
     
    uses
      Forms,
      Sysutils,
      IdComponent,
      IdHttp,
      IdSSLOpenSSL,
      CLASSES;
     
    VAR IdHttp1:TidHttp;
        IdSSL1:TIdSSLIOHandlerSocketOpenSSL;//assume on Form
        Lieux: TstringList;
        SizeOfFile:Longint;
        Zdown1:String;
     
    type
      TForm1 = class(TForm)
        procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;  AWorkCount: Int64);
        procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
        procedure IdHTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);{}
    //    procedure FormCreate(Sender: TObject);
      private
        { private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;  AWorkCount: Int64);
    begin
      if (AWorkMode=wmRead) and (SizeOfFile<>0) then WRITE(ExtractFilename(Zdown1)+':'+inttostr(trunc(AWorkCount/SizeOfFile*100))+'%   '+#13);
    end;
     
    procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
    begin
      if AWorkMode = wmRead then // Uniquement quand le composant reçoit des données
      begin
            SizeOfFile := AWorkCountMax; // Maximum = taille de l'élément
            WRITE(ExtractFilename(Zdown1)+':0%   '+#13);
      end;
    end;
     
    procedure TForm1.IdHTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
    begin
        WRITELN(ExtractFilename(Zdown1)+':100%   '+#13);
    end;
     
     
    FUNCTION Downloadfilehttps(var selfile:TSTRINGLIST;url,destination:STRING;html:boolean): BOOLEAN;
    VAR   stream:TMemoryStream;
    BEGIN
          result:=False;
          stream:=TMemoryStream.Create;
          if html then
          begin
                idHttp1.OnWorkBegin := nil;
                idHttp1.OnWork := nil;
                idHttp1.OnWorkEnd := nil;
          end
          ELSE
          begin
                idHttp1.OnWorkBegin := Form1.IdHTTP1WorkBegin;
                idHttp1.OnWork := Form1.IdHTTP1Work;
                idHttp1.OnWorkEnd := Form1.IdHTTPWorkEnd;
          end;
          try
              idHttp1.Get(url, stream);
              result:=IdHTTP1.ResponseCode=200;
          except
              on E: EIdHTTPProtocolException DO BEGIN END;
              on E: Exception DO BEGIN END;
          end;
          stream.Position := 0;
          if html then
          begin
                selfile.Clear;
                selfile.LoadFromStream(stream);
          end
          else
          begin
                stream.SaveToFile(destination);
          end;
          stream.Free;
    END;
     
     
    BEGIN
          lieux:=TSTRINGLIST.Create;
          idHttp1 := TIdHTTP.Create(NIL);
          IdSSL1:=TIdSSLIOHandlerSocketOpenSSL.Create(NIL);
          WITH IdSSL1 DO
          BEGIN
                SSLOptions.Method := sslvTLSv1_2;
                SSLOptions.SSLVersions := [sslvTLSv1_2];
                SSLOptions.Mode        := sslmClient;
                SSLOptions.VerifyMode  := [];
                SSLOptions.VerifyDepth := 0;
                PassThrough := false;
          END;
          WITH idHttp1 DO
          BEGIN
                IOHandler := IdSSL1;
                AllowCookies := True;
                HandleRedirects := True;
                OnWorkBegin := Form1.IdHTTP1WorkBegin;
                OnWork := Form1.IdHTTP1Work;
                OnWorkEnd := Form1.IdHTTPWorkEnd;
                Request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0';
                Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
                Request.AcceptLanguage := 'en-GB,en;q=0.5';
                Request.Connection := 'keep-alive';
                Request.ContentType := 'application/x-www-form-urlencoded';
          END;
          Zdown1:='PrixCarburants_instantane.zip';
          Downloadfilehttps(Lieux,'https://donnees.roulez-eco.fr/opendata/instantane',Zdown1,false); // lecture du fichier 'https://donnees.roulez-eco.fr/opendata/instantane' en zip
          if Downloadfilehttps(Lieux,'https://prix-carburants-info.fr/station-service-total/meximieux/01800001.html','',true) then writeln(pred(lieux.count)) else writeln('erreur 404'); // passe (contenu dans le fichier zip)
          if Downloadfilehttps(Lieux,'https://prix-carburants-info.fr/station-service-total/miribel/01700005.html','',true) then writeln(pred(lieux.count)) else writeln('erreur 404');  // erreur 404 dans l'editeur
          lieux.Free;
          writeln('Appuyez sur une touche');
          readln; {}
    END.
    je télécharge le fichier 'PrixCarburants_instantane.zip dans la base de donnée 'https://donnees.roulez-eco.fr/opendata/instantane'
    ensuite je fait ma 'petite cuisine'
    et je veux télécharger les fichiers html du site https://prix-carburants-info.fr/stat.../01700005.html (pour en extraire des données (en autre le nom et l'enseigne, qui ne sont pas dans le fichier .xml))

    et j'ai un bel arrêt dans l'éditeur delphi 7 (pas quand je lance le fichier test2.exe hors de l'éditeur) (message: Exception EidHttpProtocoleException avec le message 'HTTP/1.1 404 Not Found'.)
    (bien mis les 2 fichiers (libeay32.dll et ssleay32.dll) dans mon répertoire.

    merci d'avoir pris le temps de me lire ...
    ps: peut-etre que mon prog est améliorable

  14. #14
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 590
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ZonZorg Voir le message
    que se passe-t'il quand vous coupez la connection internet ?
    Il se passe ce qui doit se passer. Message :
    pas de connection internet ... Fin
    Je suis un peu perdu quant à la compréhension du projet ou de la question de départ.
    Quel est l'objectif d'un comparateur de prix de carburant ?


    Citation Envoyé par ZonZorg Voir le message
    si il faut mettre un paramettre dans l'éditeur delphi 7
    Pour empêcher TIdHTTP de lever l’exception du peut ajouter l'option : hoNoProtocolErrorException

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoNoProtocolErrorException];
    Entourer l’appel par un try/except et traiter EIdHTTPProtocolException :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try
      IdHTTP1.Get(url, stream);
    except
      on E: EIdHTTPProtocolException do
      begin
       // E.Message....
        Result := False;
      end;
      on E: Exception do
      begin
       // E.Message....
        Result := False;
      end;
    end;
    Ton code peut réagir proprement aux 404 sans provoquer d’exception gênante dans l’IDE
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Pour info j'ai utilisé Indy v10.6.3.12

    Citation Envoyé par ZonZorg Voir le message
    que se passe-t'il quand vous coupez la connection internet ?
    Nom : Capture.png
Affichages : 101
Taille : 36,1 Ko

    L'IDE n'est pas coupable de quoique ce soit, la question d'origine est mal posée.
    Conseil : Evitez de rajouter d'autres choses à la question de départ, il vaut mieux ouvrir une seconde discussion.


    Pour répondre au #13 : un programme CONSOLE avec un Tform ? Pour moi cela ne rime à rien.
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  16. #16
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 124
    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 124
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Est-ce une notification d'exception ?
    Ne pas confondre une exception capturée (non visible hors delphi) et la notification d'exception émise par le déboggueur, que l'on peut désactiver mais ne pas oublier de la remettre pour de futur diagnostic d'erreur.
    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

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Par défaut
    en réponse à XeGregory: Quel est l'objectif d'un comparateur de prix de carburant ?

    c'est pour créer un fichier poi (point of interet) pour mon gps tomtom (avec nom et enseigne de la station service

    ensuite tu executes test.exe en dehors de l'etiteur pour moi aussi cala fonctionne (mais pas quand je lance via l'editeur)

    extrait du fichier de sortie : E10-stations.csv

    codepostal;Ville;No;Lieu;Complement;Complement2;latitude;longitude;telephone;status;Adresse;Enseigne;Id;web
    01000;Bourg en Bresse;1;Bvd John Kennedy;Total Energies Relais Kennedy;(24/24);46.2051606;5.2250248;;;1 Bvd John Kennedy 01000 Bourg en Bresse;Totalenergies Access;01000016;
    01000;Bourg-en-Bresse;;Avenue Francois Pignier;Station Service E. Leclerc;(24/24);46.22100;5.24500;;;Avenue Francois Pignier 01000 Bourg-en-Bresse;Leclerc;01000007;
    01000;BOURG-EN-BRESSE;;Bd Charles De Gaulle;Carrefour Bourg En Bresse;(24/24);46.19900;5.24100;;;Bd Charles De Gaulle 01000 BOURG-EN-BRESSE;Carrefour;01000008;
    01000;Bourg-en-Bresse;;Boulevard Charles De Gaulle;Relais Bourg;(24/24);46.19900;5.24400;;;Boulevard Charles De Gaulle 01000 Bourg-en-Bresse;Totalenergies Access;01000013;
    01000;Bourg-en-Bresse;20;Avenue Du Maréchal Juin;Sarl Wales Distribution;(24/24);46.18800;5.24500;;;20 Avenue Du Maréchal Juin 01000 Bourg-en-Bresse;Totalenergies;01000004;
    01000;Bourg-en-Bresse;56;Rue Du Stand;Intermarche Bourg En Bresse;(24/24);46.19600;5.22900;;;56 Rue Du Stand 01000 Bourg-en-Bresse;Intermarché;01000009;

    Nom : poi.jpg
Affichages : 84
Taille : 796,1 Ko

    resultat dans la console:

    Nom : console.jpg
Affichages : 61
Taille : 90,0 Ko
    Pour répondre au #13 : un programme CONSOLE avec un Tform ? Pour moi cela ne rime à rien.
    c'est juste pour voir ou on en est

  18. #18
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 19
    Par défaut
    la solution proposé par XeGregory fonctionne Merci à tous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdHTTP1.HTTPOptions := IdHTTP1.HTTPOptions + [hoNoProtocolErrorException];
    Entourer l’appel par un try/except et traiter EIdHTTPProtocolException :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try
      IdHTTP1.Get(url, stream);
    except
      on E: EIdHTTPProtocolException do
      begin
       // E.Message....
        Result := False;
      end;
      on E: Exception do
      begin
       // E.Message....
        Result := False;
      end;
    end;
    ajouté dans test.dpr

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    FUNCTION Downloadfilehttps(var selfile:TSTRINGLIST;url,destination:STRING;html:boolean): BOOLEAN;
    ...
                  on E: EIdHTTPProtocolException do Result := False;
                  on E: Exception do  Result := False;
    ...
     
          WITH idHttp1 DO
          BEGIN
                HTTPOptions := HTTPOptions + [hoNoProtocolErrorException];
    ...

  19. #19
    Membre expérimenté
    Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 590
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ZonZorg Voir le message
    la solution proposé par XeGregory fonctionne Merci à tous.
    On ne peut pas faire confiance à un code qu'on n'a pas entièrement écrit soi‑même, et encore moins à celui qu'on a écrit entièrement. :aie:

Discussions similaires

  1. Comment afficher des JPEG dans une application Delphi ?
    Par Bouguennec dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/09/2005, 22h18
  2. excel dans une form Delphi
    Par jakouz dans le forum Composants VCL
    Réponses: 3
    Dernier message: 09/09/2005, 18h36
  3. Dll en c++ dans un programme delphi
    Par wikers dans le forum Langage
    Réponses: 2
    Dernier message: 04/08/2005, 16h39
  4. [Collections] Methode inconnue dans le tutorial Delphi Excel
    Par myuils dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 04/11/2004, 11h26
  5. inserer une image dans un dbgrid delphi
    Par cello dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/02/2004, 19h51

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