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

Lazarus Pascal Discussion :

Construire le nom des composants présents dans la form


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Par défaut Construire le nom des composants présents dans la form
    Bonjour à toutes et tous,

    Bon un petit problème que je n'ai pas pu résoudre :

    j'ai 60 composants TStaticText en 5 lignes de 12 composants (tableau)
    à chaque ligne correspond un objet
    à chaque colonne correspond un mois.

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                  1  2  3  4  5  6  7  8  9  10 11 12
    objet_alpha   X  X  X  X  X  X  X  X  X  X  X  X
    objet_beta    X  X  X  X  X  X  X  X  X  X  X  X
    objet_charlie X  X  X  X  X  X  X  X  X  X  X  X
    objet_delta   X  X  X  X  X  X  X  X  X  X  X  X
    objet_etc..   X  X  X  X  X  X  X  X  X  X  X  X
    les 60 TStaticText se nomment donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objet_alpha_1,objet_alpha_2,objet_alpha_3, etc ...
    objet_bravo_1,objet_bravo_2,objet_bravo_3, etc ...
    Je souhaite pouvoir construire le nom du composant à partir des infos contenues dans la base de données :
    ainsi dans le SGBD si sgbd.fieldbyname('objet_alpha').integer <> 0 alors je teste la date pour définir le mois et je construis le nom de mon composant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decodedate(sgbd.fieldbyname('date_don').asDateTime,annee,mois,jour);
    et ensuite je bute je voudrais faire un truc un peu comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var_nom_compo:='objet_alpha'+inttostr(mois);
     
    var_nom_compo.Caption :='X';
    Mais bon j'y arrive pas suis pas assez doué en Pascal

    Merci de vos réponses

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Par défaut
    Bon un embryon de réponse un copain très doué me propose cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStaticText(FindComponent('objet_alpha_' + intToStr(mois))).Caption:= 'X';
    Qu'en pensez vous ?

    Pour ma part cela ne fonctionne pas encore j'ai un "violation_access" que je ne parviens pas à isoler ...

    Eric

  3. #3
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Eric,

    Un petit effort stp...
    "lazarus findcomponent" dans google et hop le tour est joué (6ème position !)

    La réponse est ici

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Par défaut
    aie je m'attendais un jour à ce genre de réponse et c'est de ma faute ...

    J'y cours.


    Eric

  5. #5
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Par défaut
    Bonjour,

    Bon voici le code incriminé :
    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
         {Calcul des soldes et remplissage du tableau }
         With d_m.sql_lig_session Do Begin
           First;
           tot_temp1:=0;tot_temp2:=0;tot_temp3:=0;
           while not eof Do begin
             tot_temp1:=tot_temp1 + d_m.sql_lig_session.FieldByName('lig_mt_total').AsFloat;
             tot_temp2:=tot_temp2 + d_m.sql_lig_session.FieldByName('lig_mt_paye').AsFloat;
             tot_temp3:=tot_temp3 + d_m.sql_lig_session.FieldByName('lig_mt_du').AsFloat;
             { remplissage du tableau }
             DecodeDate(d_m.sql_lig_session.FieldByName('lig_date_session').AsDateTime,annee,mois,jour);
             if d_m.sql_lig_session.FieldByName('lig_colis_alim').AsInteger<>0
             Then TStaticText(FindComponent('st_tab_col_'+IntToStr(mois))).Caption:='X' ;
             Next;
           End;
         End;
    Et à l'éxécution j'ai un Raised ExcecptionClass External SIGSEGV
    et l'unité Control.inc s'ouvre et le focus se met sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if TMethod(@Self.GetTextBuf).Code = Pointer(@TControl.GetTextBuf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {------------------------------------------------------------------------------
      TControl GetText
    ------------------------------------------------------------------------------}
    function TControl.GetText: TCaption;
    var
      len: Integer;
    begin
      // Check if GetTextBuf is overridden, otherwise
      // we can call RealGetText directly
      if TMethod(@Self.GetTextBuf).Code = Pointer(@TControl.GetTextBuf)
      then begin
        Result := RealGetText;
      end
    Bref je suis perdu (encore)


    Merci

    Eric

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2008
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 74
    Par défaut
    bonsoir,


    Je suis un peu perdu car le problème ne semble pas venir du code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TStaticText(FindComponent('st_tab_col_'+IntToStr(mois))).Caption:='X' ;
    mais je n'arrive pas à la localiser et en mode pas à pas ça bug sur cette ligne alors je tourne en rond.

    A plus tard et si quelqu'un à une idée de génie ...
    en attendant je vais faire 12 lignes de codes par ligne à afficher ....

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/09/2014, 15h42
  2. [XL-2010] Identifier le nom des personnes présentes dans l'onglet Sécurité
    Par thomasdu40 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/10/2012, 15h44
  3. Lister les composants présent dans une form
    Par QAYS dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/02/2011, 12h09
  4. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32

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