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

Langage Delphi Discussion :

Transfert d'un TBitMap avec Indy 10


Sujet :

Langage Delphi

  1. #1
    Membre régulier

    Étudiant
    Inscrit en
    Août 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 108
    Points : 124
    Points
    124
    Par défaut Transfert d'un TBitMap avec Indy 10
    Bonjour,

    J'utilise un TidTCPClient pour envoyer un TBitMap, l'envoi se passe correctement et le réception des données, dans une seconde application avec un TidTCPServer, aussi.

    Cependant losque je veux utiliser cette image j'ai un EAccessViolation, j'ai déja poster un sujet pour ce pb et l'on m'a conseillé de mettre l'image dans un TStringStream.

    J'ai fait comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
    S: TStringStream;
    begin
     S := TStringStream.Create('');
     Image1.Picture.BitMap.SaveToStream(S);
    end;
    Sans parler de l'envoyer, si ensuite je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Image2.Picture.BitMap.LoadFromStream(S);
    Cela ne me met pas d'erreur mais mon image2 est vide.

    J'ai aussi essayé avec un TFileStream, ca marche nikel dans la première application (celle qui envoi l'image) mais j'obtient la meme erreur qu'au début lors de l'utilisation de l'image dans la seconde application... EAccessViolation.
    Alors est ce que j'ai oublié qqch avec le TStringStream ? Ou bien y'a t'il une autre solution car là je ne vois plus comment faire!

  2. #2
    Membre régulier

    Étudiant
    Inscrit en
    Août 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 108
    Points : 124
    Points
    124
    Par défaut
    Pas d'idée ?

  3. #3
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    t'as essayé, entre le Save et le Load de remettre le pointeur au début avec Seek(0, soFromBeginning) ?
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Pour vérifier que le passage du tstringstream se fait bien,
    exécute S.datastring:='Bonjour' avant de faire l'envoi et fait un showmessage(s) juste après la réception.

    Il faut bien faire attention de passer dans le message IP tous les caractères du Tstringsteam et pas seulement la référence de l'objet.
    En clair, il faut passer autant de caractères que length(S.datastring) précédé d'un entier (4 octets) indiquant la longueur.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre régulier

    Étudiant
    Inscrit en
    Août 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 108
    Points : 124
    Points
    124
    Par défaut
    J'ai réussi à résoudre mon problème avec un TidFileStream ! Merci de votre aide !

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

Discussions similaires

  1. [XE7] Transfert de fichier avec Indy
    Par mario9 dans le forum Langage
    Réponses: 5
    Dernier message: 02/03/2015, 02h00
  2. PB multi envoie message avec indy 10 sous D9
    Par korntex5 dans le forum Web & réseau
    Réponses: 1
    Dernier message: 13/07/2005, 14h27
  3. Envoyer un mailling avec Indy
    Par bidochon dans le forum Web & réseau
    Réponses: 5
    Dernier message: 03/08/2004, 19h29
  4. Réception Record (ReadBuffer) avec Indy
    Par SilverXp dans le forum Web & réseau
    Réponses: 3
    Dernier message: 05/07/2004, 00h41
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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