|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Antonio ZalacainÉtudiant Inscription : juin 2011 Messages : 5 ![]() |
Bonjour à tous.
Je dois créer plusieurs composants dynamiquement dans un Panel qui lui est créé dynamiquement. Pour la création du panel ainsi que des labels il n’y a pas de problème. Mais dès que j’ai besoin de mettre un MaskEdit un Edit ou un Bouton, j’ai une violation d’accès à une adresse mémoire. Pouvez-vous m’aider ? Je créé donc le Panel. Code :
Ensuite je lance les procédures qui permettent de construire les labels. Pour ces quelques procédures aucun problème. Je fais de même pour le MaskEdit et c’est au niveau du Parent du MaskEdit que sa plante. Code :
Pour le MaskEdit alors que je mets la même chose au niveau du Label et il n'y a pas de problème. Voici le message d'erreur que j'ai lors de l'exécution de la procédure http://www.imagup.com/data/1143450527.html Merci d'avance |
||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 7 845 ![]() |
as doit renvoyer nil
Parce Controls[i] n'est pas un TPanel ! Pourquoi TLabel est un TGraphicControl, il n'a pas de propriété Controls TMaskEdit est un TWinControl, il a une propriété Controls ! Avec le with TMaskEdit.Create, il utilise Controls[] du TMaskEdit au lieu de celui de la Form identifié par Self ! Une seule ligne à changer Ce qui m'étonne, c'est d'avoir une EAccessViolation à 00000008, j'aurais plutôt pensé à une "Index Hors Limite" ! En plus, Parent := Obj modifie implicitement Controls[] de Obj justement ! Pourquoi passer i en paramètre, passe directement le TPanel ! Code :
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Parisien ! Dites NON à la VO ST au Cinéma ! Soit VF Soit VO sans sous-titre |
||
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : septembre 2008 Messages : 2 233 ![]() |
TMaskEdit dérive de TWinControl, il a donc sa propre propriété Controls. A sa création, Controls ne peut qu'être vide et pas conséquent Controls[i] est dans les choux
Préfixe-le simplement pas self pour bien utiliser la liste de la fiche : Self.Controls[i]. Edit: Enfin bref... comme dit Shai |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Antonio ZalacainÉtudiant Inscription : juin 2011 Messages : 5 ![]() |
Merci beaucoup. Sa fonction parfaitement. Je vous remercie de votre gentillesse et de votre rapidité au niveau des réponses. Bonne fin de semaine à vous !!
A très vite !!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com