marvenjabloun
Messages postés7Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention 3 juin 2007
-
26 avril 2007 à 18:40
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 2021
-
28 avril 2007 à 13:24
Bonjour,
je suis etudiant debutant en delphi et je fait une application dans le cadre d'un projet avec delphi 7et je trouve un problemepour utiliser des composantes crées dynamiquement car elles ne sont pas reconnu lors de l'execution j espere que je trouverai de l aide sur votre site merci .
en effet voila un petit bout de code
ou je veux recuperer le caption d'une label creer dynamiquement et dont la valeur est prise à partir d'un fichier XML
l'affichage et l'extraction a partir de fichier xml se fait sans probleme
[file://\\panel \\panel] saisie n 'est pas creer dynamiquement
for j := PanelSaisi.ComponentCount -1 downto 0 do
PanelSaisi.Components[j].Free;
[file://\\creation \\creation] dynamique de panel2
Panel2 := TPanel.Create(PanelSaisi);
with Panel2 do
begin
Parent := PanelSaisi;
ParentColor := true;
BevelOuter := bvNone;
Align := AlTop;
name := 'PanelBrique';
caption := '';
end;
[file://\\creation \\creation] dynamique de label
with TLabel.Create(Panel2) do
begin
Parent := Panel2;
Align := alLeft;
Font := PoliceTitre;
[file://\\exraction \\exraction] des données a partir de fichier XML
une fois j 'ecrit ce code je voulais recuperer la valeur de caption créé au dessus et ça j ai pas pu le faire
j ai ecrit ce code qui a generer une erreur d'exception violation d'acces
[file://\\panel2 \\panel2] et labelType sont declarer comme etant tpanel et tlabel
panel2:=(panelsaisie.FindChildControl('PanelBrique') as TPanel);
labeltype:=(panel2.FindChildControl('labeltype') as Tlabel);
{je suis presque certain que le probleme vient de ces deux lignes au dessus}
[file://\\je \\je] colorerai un paneldecoration selon la valeur de label prise dans le fichiers XML
if labeltype.caption = 'Composantes' then
Paneldecoration.Color := clpurple;
if labeltype.caption = 'Graphe' then
Paneldecoration.Color := clyellow;
.....................................
j atend des propositions car je commence a me demoraliser
A voir également:
Récupérer le contenu d'un contrôle créé dynamiquement
moldov
Messages postés165Date d'inscriptionmercredi 8 octobre 2003StatutMembreDernière intervention10 novembre 2008 26 avril 2007 à 20:40
Salut,
Voici la méthode que j'utilise, alors c'est peut être pas la plus optimisé mais elle fonctionne:
for iIndice := ComponentCount-1 downto 0 do
if Component[iIndice] is TPanel then
if TPanel(Component[iIndice]).Name = 'PanelBrique' then
TPanel(Component[iIndice]).Color := clPurple;
Voila alors je sais que j'ai déjà fait avec FindComponent, mais je sais plus trop comment j'avais fait et je suis pas chez moi pour regarder mes sources.
marvenjabloun
Messages postés7Date d'inscriptionmardi 3 avril 2007StatutMembreDernière intervention 3 juin 2007 27 avril 2007 à 15:03
pour ceux qui rencontreront le meme probleme que moi voila comment j ai fait graçe a votre aide Loda :
with TLabel.Create(Panel2) do
begin
Parent := Panel2;
Align := alLeft;
Font := PoliceTitre;
IdType := XMLProfil.DocumentElement.ChildNodes.
Nodes[ScrollBoxBrique.Tag].Attributes[_type];
Caption := FFOnctionsUtiles.GetChildNodeByNameAndAttr(
XMLModele.DocumentElement, _type, 'id', IdType).AttributeNodes.
Nodes['nom'].Text;
name := 'labelType';
\\ tablabeltype doit etre declaré comme un tableau de string
for k:=0 to 49 do
tablabeltype[k]:=FFOnctionsUtiles.GetChildNodeByNameAndAttr(
XMLModele.DocumentElement, _type, 'id', IdType).AttributeNodes.
Nodes['nom'].Text;
end;
for k:=0 to 49 do
if tablabelType[k] = 'Graphe' then
Paneldecoration.Color := clyellow
else
if tablabelType[k] = 'Composantes' then
Paneldecoration.Color := clpurple;
.................
ça fonctionne
Vous n’avez pas trouvé la réponse que vous recherchez ?