[C++ Builder] Pb dur à expliquer ...

Pb dur à expliquer ... [C++ Builder] - C++ - Programmation

Marsh Posté le 13-04-2002 à 09:58:53    

Bonjour,
 
J'aimerais copier une même valeur dans la propriété PasswordChar de plusieurs Edit, nommés Edit1, Edit2, Edit3, etc..., mais seulement ceux qui sont pairs.
Après recherche et une inspiration de ce cher antp, voilà le code que j'ai pondu :
 

Code :
  1. int pwdchr = 0;
  2. if (CheckBox7->Checked)
  3. pwdchr = 42;
  4. AnsiString nmtmp;
  5. for (int i=0; i<Form1->ComponentCount - 1; i++)
  6. if (dynamic_cast<TEdit *>(Form1->Components[i]) && StrToIntDef(Form1->Components[i]->Name.SubString(5, 2), 0)%2 == 0)  //tous les composants TEdit pairs
  7.   {
  8.   nmtmp = Form1->Components[i]->Name;
  9.   Form1->Components[i]->Name = "EditTmp";
  10.   //EditTmp->PasswordChar = pwdchr; //ça bloque : E2451 Undefined symbol 'Edit'
  11.   Form1->Components[i]->Name = nmtmp;
  12.   }


 
J'ai temporairement modifié le nom, car c'est la seule propriété, avec Tag, qui sont accéssibles, car ces 2 propriétés sont communes à tous les composants.
Mais à l'avant dernière ligne de code, une erreur survient, elle est indiquée en commentaires...
 
Comment régler ce pb svp ?
 
@++ :hello:

 

[jfdsdjhfuetppo]--Message édité par juju_le_barbare--[/jfdsdjhfuetppo]


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 13-04-2002 à 09:58:53   

Reply

Marsh Posté le 13-04-2002 à 11:58:46    

Tu ne peux pas changer le nom comme ça !
EditTmp c'est pas juste le nom du composant, c'est aussi une variable : un pointeur.
 
avant la boucle:
TEdit *EditTmp;
 
dans la boucle:
EditTmp = Form1->Components[i];
EditTmp->PasswordChar = pwdchr;
 
Ou peut-être:
((TEdit *)Form1->Components[i])->PasswordChar = pwdchr;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed