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

C++Builder Discussion :

identification de mon edit


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut identification de mon edit
    salut
    i'ai un probleme d'itentifier mon edit apres la création voila mon code que je travaille sur lui il est bien executer
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    int x=20;
     TEdit*ed ;
     TEdit*ad ;
     TLabel *lb ;
     TLabel *lab;
     int k;
     for( k=0;k<Edit1->Text.ToInt();k++)
     {
        ed=new TEdit(Panel1);
        ad=new TEdit(Panel1);
        lb=new TLabel(Panel1);
        lab=new TLabel(Panel1);
        ed->Parent=Panel1  ;
        ad->Parent=Panel1  ;
        lb->Parent=Panel1  ;
        lab->Parent=Panel1  ;
        ed->Name="myed" +IntToStr(k+1);
        ad->Name="myad" +IntToStr(k+1);
        lb->Name="mylb" +IntToStr(k+1);
        lab->Name="mylab" +IntToStr(k+1);
        ed->Width=100;
        ad->Width=100;
        ed->Text="";
        ad->Text="";
        lb->Caption="x =" + IntToStr(k+1);
         lab->Caption="y =" + IntToStr(k+1);
        ed->Left=x;
        ad->Left=x+120;
        lb->Left=x-15 ;
        lab->Left=x+120-15 ;
        ed->Top=x+30*k;
        lb->Top=x+30*k;
        ad->Top=x+30*k;
        lab->Top=x+30*k;
     }
    mais ares que je veux l'identifier j'ai pas trouver la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int s,p;
    for(k=0;k<Edit1->Text.ToInt();k++)
       p= myad IntToStr(k+1+1)->Text.ToInt() -myad IntToStr(k+1-1)->Text.ToInt
    il ne travaille pas

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    salu aboishak,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    p= myad IntToStr(k+1+1)->Text.ToInt() -myad IntToStr(k+1-1)->Text.ToInt
    ton 'myad' c'est quoi au juste?

  3. #3
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Peut etre avec FindComponent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p = StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1+1)))->Text, -1 )
      - StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1-1)))->Text, -1 )

  4. #4
    Membre confirmé Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Par défaut
    Bonjour,

    il y a la possibilité de passer par une TList

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    int x=20;
     TList* List_ed = new TList;
     TList* List_ad = new TList;
     
     TEdit*ed ;
     TEdit*ad ;
     TLabel *lb ;
     TLabel *lab;
     int k;
     for( k=0;k<Edit1->Text.ToInt();k++)
     {
        ed=new TEdit(Panel1);
        ad=new TEdit(Panel1);
        lb=new TLabel(Panel1);
        lab=new TLabel(Panel1);
        ed->Parent=Panel1  ;
        ad->Parent=Panel1  ;
        lb->Parent=Panel1  ;
        lab->Parent=Panel1  ;
        ed->Name="myed" +IntToStr(k+1);
        ad->Name="myad" +IntToStr(k+1);
        lb->Name="mylb" +IntToStr(k+1);
        lab->Name="mylab" +IntToStr(k+1);
        ed->Width=100;
        ad->Width=100;
        ed->Text="";
        ad->Text="";
        lb->Caption="x =" + IntToStr(k+1);
         lab->Caption="y =" + IntToStr(k+1);
        ed->Left=x;
        ad->Left=x+120;
        lb->Left=x-15 ;
        lab->Left=x+120-15 ;
        ed->Top=x+30*k;
        lb->Top=x+30*k;
        ad->Top=x+30*k;
        lab->Top=x+30*k;
     
         //Sauvegarde des pointeurs dans les listes
        List_ed->Add(ed);
        List_ad->Add(ad);
     
     }
    Ensuite pour rappeler le bon edit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int s,p;
    for(k=0;k<Edit1->Text.ToInt();k++)
       p= ((TEdit)List_ad->Items[k+1+1])->Text.ToInt() - ((TEdit)List_ad->Items[k])->Text.ToInt();
    Il faut par contre que les lists soit déclarées en global et attention lors du delete, il faut vider les list avant de deleter le pointeur !

    En espérant que ça vous aide

    PS : j'ai pas tester le code, il doit y avoir des erreurs de syntaxe.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    ed=new TEdit(Panel1);
    ad=new TEdit(Panel1);
    lb=new TLabel(Panel1);
    lab=new TLabel(Panel1);
    Panel1 est propriétaire des TEdit, par conséquent on peut se servir de Components.
    Si Panel1 n'est propriétaire que de ces objets là, dans ce cas, on peut considérer que Components reflète l'ordre de création des objets.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ((TEdit*)Panel1->Components[0]) <<-- ed
    ((TEdit*)Panel1->Components[1]) <<-- ad
    ((TLabel*)Panel1->Components[2]) <<-- lb
    ((TLabel*)Panel1->Components[3]) <<-- lab
    Cette manière de rédiger peut sembler longue mais reste valable, en tout cas beaucoup plus pertinente (et surtout beaucoup plus rapide en terme d'exécution) que FindComponent.
    A ce stade, on n'a pas besoin de donner de nom aux composants créés; du point de vue dynamique celà n'a pas de sens !

    Par contre, il ne faut pas hésiter à objétiser (avec BCB on a tout ce qu'il faut sous la main pour l'envisager) !
    On peut développer une classe dérivée de TPanel qui se chargera de créer les objets.
    Et dans ce cas, rien n'empèche de définir, pour cette classe, un pointeur par objet !
    Celà permet d'avoit une meilleure vision de ce que l'on fait, sans parler d'une meilleure accessibilité aux objets eux-mêmes !
    Au fond, c'est l'art et la manière de préparer le développement : soit on développe à la volée (jusqu'à se trouver le dos au mur), soit on objétise (pour éloigner le mur) !

    A plus !

  6. #6
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    j'ai deux probleme le premier c'est que je n'arive pas rendre k+1+1 a une valeur donne
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    int p,m,s=0;
     for( int k=0;k<Edit1->Text.ToInt();k++)
     {
     if(k+1+1>  Edit1->Text.ToInt())
     {
     k+1+1=1;
     
    p = StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1+1)))->Text, -1 )
      - StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1-1)))->Text, -1 )  ;
     m=(StrToIntDef (((TEdit*) FindComponent("myed" +IntToStr(k+1)))->Text, -1))*p;
     Edit2->Text=IntToStr(s+m);
     }
     if (k+1-1=0)
     {
     (k+1-1)=Edit1->Text.ToInt();
     p = StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1+1)))->Text, -1 )
      - StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1-1)))->Text, -1 )  ;
     m=(StrToIntDef (((TEdit*) FindComponent("myed" +IntToStr(k+1)))->Text, -1))*p;
     Edit2->Text=IntToStr(s+m);
     }
     else
     {
     p = StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1+1)))->Text, -1 )
      - StrToIntDef( ((TEdit*) FindComponent("myad" + IntToStr(k+1-1)))->Text, -1 )  ;
     m=(StrToIntDef (((TEdit*) FindComponent("myed" +IntToStr(k+1)))->Text, -1))*p;
     Edit2->Text=IntToStr(s+m);
     }
     }
    le deuxieme c'est comment j'arive a redonner une 2ieme valeur a edit1 pour réecré les composant

Discussions similaires

  1. [Débutant] ecrire en arabe sur mon edit dans mon interface
    Par roubase dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/01/2012, 11h04
  2. Identification de mon système : besoin d'aide
    Par Goffer dans le forum Mathématiques
    Réponses: 0
    Dernier message: 23/05/2010, 19h27
  3. [Edit] Aligner mon texte à droite
    Par touhami dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/05/2008, 20h14
  4. Demander une identification sur mon site
    Par vxe01 dans le forum Sécurité
    Réponses: 3
    Dernier message: 29/06/2007, 13h49
  5. cacher curseur sur mon edit?
    Par kheldoun ahmed dans le forum Delphi
    Réponses: 3
    Dernier message: 19/05/2007, 20h50

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