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 :

[Debug] Comment obtenir le nom et/ou l'adresse d'un TObject ?


Sujet :

Langage Delphi

  1. #1
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut [Debug] Comment obtenir le nom et/ou l'adresse d'un TObject ?
    Je cherche une maniere quelconque qui me permette de defferencier visuelement 2 Instance d'une meme classe non heritee de TComponent mais de TObject.

    N'ayant pas la prop 'Name' a afficher, et ne pouvant conserver le nom de la variable dans l'execuable, je cherche donc dans le pire des cas de pouvoir afficher l'adresse de la variable contenue dans "Self".

    tout autre methode sera la bienvenue ...

    LE but etant de creer une sorte de Debugger qui m'affiche donc une chaine du type : "Entree dans la methode MonObjet.Create"
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    tu peux pê utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(IntToStr(Cardinal(self)));
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Effectivement .. merci

    J'ai essaye int to str, Pointer .... bref j'ai pas pense aux cardinaux
    Bon un chiffre c pas terrible mais c deja ca. Si qqun a une methode pour recuperer d'une maniere ou d'une autre une version "String" du nom de la variable ...
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    y'a pas, à mon avis :
    self pointe vers une zone mémoire :
    - pointeur sur la VMT
    - pointeur sur la zone des données membres
    je ne pense pas que le nom de la variable soit récupérable, le compilo résolvant les liens en interne grâce à des tables pas accessibles !!!
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    je ne pense pas que le nom de la variable soit récupérable, le compilo résolvant les liens en interne grâce à des tables pas accessibles !!!
    Vi ca je le sais ... mais on peut cour circuiter ce systeme ...

    J'ai pense "enregistrer" un objet lors de sa creaton en appelant une methode "RegisterObject" qui stocke dans un tableau l'adresse de self et un nom que je donne (version string du nom de al variable).
    Ca marche plutot bien sauf que c'est peut etre un peu lourd (mais bon c'est du debugg) et ca ne marche qu'apres avoir cree l'objet, cad que toutes les procedures appelles dans le create ne permettent pas de generer des ligens de logs avec la version String car non encore ressencé ..

    Enfin c'est peut etre confus mais bon ca marche deja pas trop mal .. on fera evoluer avec le temps.

    Merci.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/01/2007, 15h32
  2. [C#.Net] Comment obtenir le nom de la machine client ?
    Par Gat- dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/01/2007, 16h16
  3. Comment obtenir le nom complet d'un lecteur réseau ?
    Par Speed41 dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 26/08/2004, 08h55
  4. Comment obtenir le nom d'un pc sur un réseau?
    Par Depteam1 dans le forum MFC
    Réponses: 2
    Dernier message: 19/02/2004, 11h17

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