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.
Puis je vais rechercher le composant qui à la propriété Panel.
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 begin tag_dyn := 0; top_dyn := 10; left_dyn := 10; supprimer_code_propre(); with TPanel.Create(Self) do begin Parent := Self; Name := 'pageDyn'; Text := ''; Height := 353; Width := 1065; Top := 191; Left := 18; Tag := tag_dyn; end; gestion_planning(); end;
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.
C'est la ligne suivante qui pose problème : Parent := Controls[i] as TPanel;
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
44
45
46
47
48
49 For i := 0 to ControlCount - 1 do begin if (Controls[i] is TPanel) then begin label_nom_activite(i); top_dyn := top_dyn + 16; label_heure_debut_activite(i); top_dyn := top_dyn + 16; label_heure_fin_activite(i); top_dyn := top_dyn + 40; label_heure_debut_agent(i); left_dyn := left_dyn + 88; txt_edit_heure_debut_agent(i); Break; end; end; // Création du label heure de début agent procedure TfrmActiviteJournee.label_heure_debut_agent(i : integer); begin with TLabel.Create(Controls[i] as TPanel) do begin Parent := Controls[i] as TPanel; Name := 'heurededebutagent'; Top := top_dyn; Left := left_dyn; Tag := tag_dyn; Caption := 'Heure de début : '; end; end; // Création du text Edit heure debut agent procedure TfrmActiviteJournee.txt_edit_heure_debut_agent(i : integer); begin with TMaskEdit.Create(Controls[i] as TPanel) do begin Parent := Controls[i] as TPanel; Name := 'txtHeureDebutAgent'; EditMask := '!90:00;1;_'; Enabled := False; Height := 21; Width := 33; Top := top_dyn; Left := left_dyn; Tag := tag_dyn; Text := Copy(RSActiviteJournee.Fields[1].Value, 12, 5); end; end;
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![]()
Partager