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 :

[D7] Nom de composant et String du nom de ce composant


Sujet :

Delphi

  1. #1
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut [D7] Nom de composant et String du nom de ce composant
    Bonjour

    Question bête comme choux :

    Pour m'éviter de créer X procédures dans lesquels me faut le nom de la ligne écrite en cours (des Edit), je passe via un Sender.

    Pas de soucis et j'ajoute aussi l'extension afin de reconstituer le nom complet de l'Edit.

    OK, mais en fait, ce nom de composant reconstitué est traité comme un vulgaire string au lien d'être traité comme un nom d'Edit.

    Autrement dit, par exemple le nom de ce compo est Edit1.text et le string reconstitué est exactement identique.

    Pour illustrer cela, une simple affectation d'Edit sur le nom direct du compo = ça donne bien le contenu texte.

    Par contre la même manip avec le nom reconstitué (via le Sender) retourne en affection... : le nom de ce compo

    Merci d'avance de vos idées.

    DS7

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    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 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Bonsoir,

    Pour illustrer ce qu'on peut faire (attention : l'esprit y est, mais c'est codé dans le forum...) de ce que j'ai cru comprendre de la situation :
    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
    function EditQuelEstTonNom(Sender: TObject): string;
    begin
      if Sender is Tedit then Result := TEdit(Sender).Name;
    end;
     
    function EditQuelEstTonTexte(Sender: TObject): string;
    begin
      if Sender is Tedit then Result := TEdit(Sender).Text;
    end;
     
    function EditPrendsCeTexte(aForm: TForm; aEditName, aText: string);
    var
      aCompo: TComponent;
    begin
      aCompo := AForm.FindComponent(aEditName);
      if aCompo is TEdit then TEdit(Compo).Text := aText;  
    end;
    Delphi 5 Pro - Delphi 11.3 Alexandria 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 Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Tourlourou

    En fait je viens de percuter ma méprise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SenderStr := (Sender as TEdit).Text; // .Name;
    Hé oui la sortie est différente

    En plus je récupère directement le string.

    Tes fonctions me seront utiles.

    Merci, affaire promptement résolue

    DS7

  4. #4
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Et en plus du nom des composants (qui sert plus à l'IDE pour faire le lien entre le DFM/FMX et le code source, puis pour nous déclarer des variables), on peut aussi dans le code accéder à la classe en tant que string si tu as besoin de savoir quel composant c'est. Il suffit d'utiliser la propriété ClassName.

    Selon ce que tu fais, tu ne peux pas jouer avec "Name" pour être sûr du type, sauf si c'est un truc fait pour toi et que tu ne renommes jamais les composants. Donc si tu as besoin de traiter des infos pour tous le composants, passe par la classe, avec de la surcharge pour gérer les appels au bon niveau dans ton code ou ClassName pour avoir des infos à retraiter sous forme de variables.

  5. #5
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Pprem

    Visiblement ma notification était en vacances

    Oui tu as raison, mais jonglant sur plusieurs langages, je ne peux trop approfondir certains.

    Merci de tes précisions.

    En plus je me borne à Delphi 7 pour éviter de me prendre trop le choux-fleur ; ainsi que tu dois te souvenir...

    DS7

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

Discussions similaires

  1. [JTextField] Nom du composant
    Par Mister Nono dans le forum Composants
    Réponses: 3
    Dernier message: 07/01/2005, 09h36
  2. [FLASH MX] Nom de composant dynamique
    Par bobgeldof7 dans le forum Flash
    Réponses: 2
    Dernier message: 12/11/2004, 23h07
  3. [ActionEvent] Récupérer nom du composant émetteur
    Par mouloude dans le forum Composants
    Réponses: 4
    Dernier message: 29/10/2004, 17h19
  4. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46
  5. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

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