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

Composants VCL Delphi Discussion :

Création d'un composant à partir d'un string


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut Création d'un composant à partir d'un string
    Bonjour,

    J'aimerai savoir si il est possible de créer un composant à partir d'un string.

    Je m'explique: je récupère dans un fichier texte le type d'un composant (TSQLTimeStampField) et j'aimerai faire un create de ce type de composant.

    Sachant qu'il dérive de TFields, j'ai déclaré un TFields dans la partie "var"
    et j'aimerais faire un truc du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    VAR
       MonChamp:Tfield;
       TypeDuChamp: String;
    begin
    ---Récupération du type du champs dans TypeDuChamp ---
    MonChamp:=TypeDuChamp.create(self);
    end;
    comment instancier un composant à partir de son nom contenu dans un string?

    Merci

  2. #2
    Membre éclairé Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Par défaut
    J'ai déjà essayer de trouver des infos sur ce sujet, et j'ai rien trouvé ; mais si tu résussi à trouver une sorte d'interpréteur de commande Delphi, ça serait peut-être possible, même si je suis pas sûr que ça existe ...

    Sinon, tu peux faire un code, un peu long, qui prévois tous les types de variables possibles ...

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    impossible tels que tu le veut
    un string ne peut pas etre un tfield
    mais il existe d'autre solution

    si ton champs existe dans le dataset il te suffit de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F := dataSource.Dataset.FieldByName(FieldName);
    si ton champs n'existe pas utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     CalcField:=TStringField.Create(self);
         CalcField.FieldKind:=fkCalculated;
         CalcField.Size:=20;
         CalcField.FieldName:='FieldName';
         CalcField.DataSet:=Dataset;
    ensuite reutilise la premiere solution pour le retrouver

    @+ Phil

  4. #4
    Membre averti
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Merci pour cette réponse. J'ai essayé de la mettre en pratique mais les champs retournés étaient vides.

    Je me suis débrouillé autrement, j'ai fait une suite de "if" pour déterminer le type du champ.

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    pour connaitre le type de champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dataset.FieldByName(FieldName).DataType
    un exemple d'utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    F := Dataset.FieldByName(FieldName);
        case F.DataType of
            ftfloat,ftCurrency,ftBCD: result := F.AsFloat;
            ftInteger,ftWord,ftSmallint:result := F.AsInteger;
         else
            result := F.AsString;    
         end;
    @+ Phil
    PS : ne pas oublier le tag resolue si la repons a ta question a ete apporté

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

Discussions similaires

  1. BCB6 Création d'un composant à partir d'un TButton
    Par Colloc dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/10/2012, 14h15
  2. Création d'un tableau en shell à partir d'un string
    Par jimmy4413 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 31/05/2011, 14h00
  3. Création d'une image à partir d'un String.
    Par chrislcf dans le forum VB.NET
    Réponses: 18
    Dernier message: 18/06/2008, 11h57
  4. Création dynamique control à partir d'une string
    Par J@ckHerror dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/03/2007, 05h22
  5. création d'1 objet à partir d'1 String
    Par AnthonyL44 dans le forum Langage
    Réponses: 8
    Dernier message: 22/08/2006, 10h20

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