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 :

Est-ce possible en Delphi !


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Par défaut Est-ce possible en Delphi !
    bon soir a tt le monde
    voisi un petite program avec un autre langage de programation (clipper)

    A = 5 // je declare une variable numerique A et sa valeur 5
    B = 'A' //je declare une variable alphanurerique B qui a la valeur 'A'
    juste pour l'instant tt est posible en delphil

    la commande suivante est
    C = &B
    en appel '&' un macro en clipper il signifie que C recoit la valeur d'une variable , le nom de cette variable se trouve dans une autre variable qui est B dans notre cas, c'est a dire C recoit 5
    la question est: ést ce que ça est posible en delphi..!

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    pour faire simple, non...de façon moins directe c'est envisageable.

    le langage Pascal est compilé en binaire à un niveau ou le nom des variables n'a plus d'existence. A devient une position en mémoire qui n'a qu'une adresse et aucun nom.

    par contre les classes objets avec leurs propriétés bénéficient des Run Time Type Informations (RTTI) qui permettent de retrouver la propriété "A" d'un objet. C'est ce que fait l'IDE Delphi quand on défini la propriété "Caption" d'un objet par exemple, c'est bien le nom "Caption" qui est stocké dans le DFM et GetProperty permet de la retrouver.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Par défaut
    Hello,
    si je puis me permettre, n'ayant pas les connaissances de Paul Toth, juste une petite remarque, je crois que dans ton cas, tarekk73, c'est possible mais il suffit que B soit déclaré comme un simple pointeur.
    Ensuite tu affecte à B l'adresse de la variable A.
    Pour finir, tu pourras affecter à C la valeur contenue à l'adresse stockée dans B.
    Il faudra surement aussi "caster" ce que tu récupèreras du pointeur B (afin que Delphi te retourne le format attendu (integer ou byte ici, au choix)).
    J'espère que c'est assez clair...

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par peter27x Voir le message
    Hello,
    si je puis me permettre, n'ayant pas les connaissances de Paul Toth, juste une petite remarque, je crois que dans ton cas, tarekk73, c'est possible mais il suffit que B soit déclaré comme un simple pointeur.
    Ensuite tu affecte à B l'adresse de la variable A.
    Pour finir, tu pourras affecter à C la valeur contenue à l'adresse stockée dans B.
    Il faudra surement aussi "caster" ce que tu récupèreras du pointeur B (afin que Delphi te retourne le format attendu (integer ou byte ici, au choix)).
    J'espère que c'est assez clair...
    oui mais non

    tu parles de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      a: Integer;
      b: ^Integer;
      c: Integer;
    begin
      a := 5;
      b :=@a; // adresse de a
      c := b^; // récupère le 5 dans a
    end;
    mais ça ne fonctionne pas avec le nom 'a'
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    oui mais non

    tu parles de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      a: Integer;
      b: ^Integer;
      c: Integer;
    begin
      a := 5;
      b :=@a; // adresse de a
      c := b^; // récupère le 5 dans a
    end;
    mais ça ne fonctionne pas avec le nom 'a'
    Oui c'est exactement ce que je voulais dire. Ensuite effectivement ce n'est plus le nom 'a', mais son adresse, je suis bien d'accord, mais je voyais que ça pour approcher au plus près de ce qu'il cherche à faire (ou à reproduire).

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    ceci dit, après il est toujours possible d'ajouter des rustines

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
      noms: TStringList;
      a: Integer;
      b: string;
      i : Integer;
      c: Integer;
    begin
      noms := TStringList.Create;
      noms.AddObject('a', TInteger(@a));
      b := 'a';
      i := noms.IndexOf(b);
      c := PInteger(noms.Objects[i])^;
    end;
    et on pourra dériver TStringList pour lui ajouter des méthodes AddInteger(nom:string; Addr: PInteger); GetInteger(nom:string):Integer;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/06/2015, 18h58
  2. Format Tex-Latex sous Delphi est-ce possible ?
    Par PiPo123 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 13/12/2011, 14h55
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. Réponses: 2
    Dernier message: 16/05/2003, 10h14
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

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