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 :

Passer une chaine par adresse en paramètre d'une methode


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut Passer une chaine par adresse en paramètre d'une methode
    Bonjour,

    Tout est dans le titre, j'ai essayé plusieurs syntaxes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nb := maMethode(@buf);
     
    function maMethode(str: PString): Integer;
    begin
      str := ''; // Il me dit: Types incompatibles (PansiString et String)
      result := 0;
    end;
    Pourquoi le ^String ne marche pas ?
    Qu'est ce que le Pstring exactement ?

    Merci d'avance.
    David.

  2. #2
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Et comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    nb := maMethode(@buf);
     
    function maMethode(str: PString): Integer;
    begin
      str^ := ''; // Il me dit: Types incompatibles (PansiString et String)
      result := 0;
    end;
    Bidouilleuse Delphi

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Salut waskol,

    Bin ça marche, merci !

    J'aimerais juste savoir pourquoi ^string ne marche pas ?
    David.

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Parce que c'est la syntaxe de mettre le chapeau ^ après le pointeur en delphi (c'est pas comme en C avec l'étoile) :

    Soit P un pointeur (donc une Adresse) :
    En C : *P est le contenu de ce qui se trouve à l'adresse P
    En Delphi : P^ est le contenu de ce qui se trouve à l'adresse P
    Bidouilleuse Delphi

  5. #5
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bin dans cas la, pourquoi String^ ne marche pas, c'est bien un pointeur, nan ?
    David.

  6. #6
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Nan, dans ton code:

    1) Str est un pointeur, donc une variable qui contient une valeur (en l'occurence une adresse), donc ça marche,

    2) string est un type (comme integer, TListBox, TAlign, PAnsiString, Pointer...) et de surcroit un mot réservé tout comme begin, for, end, program, uses (et certainement pas une variable), donc c'est normal que ton Delphi te fasse la tête quand tu écris string^

    Bidouilleuse Delphi

  7. #7
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Ok, merci pour tout et le reste !
    David.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/08/2013, 08h57
  2. Réponses: 2
    Dernier message: 02/09/2011, 10h29
  3. Générer une liste d'adresse IPs à partir d'une plage d'adresse.
    Par johnnyjohnny dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 25/11/2008, 22h35
  4. Verifier si une chaine de caractere est situe dans une chaine de caractere
    Par gregounnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2007, 15h31
  5. [Property] Comment déclarer une chaine par defaut ?
    Par Clorish dans le forum Composants VCL
    Réponses: 8
    Dernier message: 07/09/2004, 22h11

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