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

Web & réseau Delphi Discussion :

IdHTTP avec les thèmes provoque une exception


Sujet :

Web & réseau Delphi

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut IdHTTP avec les thèmes provoque une exception
    bonjour,

    J'utilise Delphi XE5.

    Pour mettre mon problème en évidence, j'ai fait une appli qui ne possède qu'un objet TIdHttp et un bouton qui faire une requête IdHttp1.get('http://www.crystalxe.com');

    Lorsque je sélectionne le thème windows, ça fonctionne bien.
    Par contre si je choisis un thème comme par exemple "Lavender classico" alors dès que j'appuie sur mon bouton, j'ai une exception "access violation at....read of address..."

    Pour changer le thème je passe par le menu Projets / Options puis l'élément Application / apparence
    Voici mon 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
    38
     
    unit Unit1;
     
    interface
     
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
     
    type
      TForm1 = class(TForm)
        IdHTTP1: TIdHTTP;
        ButtonGet: TButton;
        procedure ButtonGetClick(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    //---------------------------------------------------------
    procedure TForm1.ButtonGetClick(Sender: TObject);
    Var
      S : String;
    begin
      S := IdHttp1.get('http://www.crystalxe.com');
      ShowMessage(S);
    end;
    //---------------------------------------------------------
     
    end.
    Merci
    Franck

  2. #2
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    En fait le problème viendrait de la fonction ShowMessage et non pas de la fonction Get.
    Dans mon cas précis, avec le get sur le site http://www.crystalxe.com la longueur du string qui est retourné est de 17756 octets.
    Vous me direz qu'il est aberrant de vouloir afficher 17756 caractères avec la fonction ShowMessage et vous auriez bien raison.
    C'est pourquoi je ferme ce thread.
    Merci

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Ton problème de ShowMessage trop long me rappelle un autre sujet que je ne retrouve pas !
    Mais oui 17756 caractères ne peuvent pas être affiché à l'écran d'un seul coup, selon la fonction utilisée et les thèmes Delphi activé ou non, la Message Box gère ou pas une Scroll Bar
    Si ta chaine ne contient aucun espace elle sera même potentiellement tronqué par une ellipse ' ... '

    je viens de tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
      S:  string;
      I, K: Integer;
    begin
      K := 70000; // 17756 passe ! 32767 passe aussi ! 52000 pas de soucis ! 53000 passe mais la fin du programme devient instable si Style delphi ! 55000 avec Style Delphi, ça plante ! 70000 ça passe en Style Windows mais long à afficher !
      for I := 1 to K div 10 do
        S := S + '123456789 ';
      for I := 1 to K mod 10 do
        S := S + IntToStr(I);
     
      ShowMessage(S);
    end;
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/11/2007, 14h33
  2. Problème avec les indexes sur une base de données.
    Par osoudee dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/02/2006, 10h24
  3. Pb avec les références d'une base de données
    Par Celia1303 dans le forum Access
    Réponses: 8
    Dernier message: 01/12/2005, 16h44
  4. [Débutant] Problème avec les paramètres d'une proc stockée
    Par babulior dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/06/2005, 16h38
  5. [C#] Travailler efficacement avec les panels dans une forme
    Par WwiloO dans le forum Windows Forms
    Réponses: 8
    Dernier message: 27/06/2005, 16h33

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