Parcours des composant d'une fiche [Delphi] - Delphi/Pascal - Programmation
Marsh Posté le 16-12-2005 à 14:40:08
Il faut plutôt parcourir la propriété Controls, mais le problème c'est que tu n'accèderas pas à tes forms imbriquées depuis la Form principale si elles sont dans des panels.
Sinon tu peux aussi tenter un InsertComponent lorsque tu crées tes forms dynamiquement (attributer le Parent rajoute à la liste des Controls mais pas à celle des Components). Il faut aussi utiliser RemoveComponent si tu veux l'enlever avant destruction de la Form.
Marsh Posté le 16-12-2005 à 14:47:22
Merci de ta réponse , Je vennais juste de trouver la solution a mon problème . mes forms étaient en effet dans des panels et avait comme OWner ces memes panels. j'ai résolu ce problème en utilisant une fonction récursive qui se rapelle si le composantCount du composant n'est pas nul.
Procedure InitComponent ( CompToParcours : TComponent ); |
Marsh Posté le 16-12-2005 à 15:30:40
Pourquoi mettre ton code dans des spoiler ? Il n'est pas si catastrophique, il n'y a pas à en avoir honte
Marsh Posté le 16-12-2005 à 15:59:33
antp a écrit : Pourquiu mettre ton code dans des spoiler ? Il n'est pas si catastrophique, il n'y a pas à en avoir honte |
l'habitude de certains forum ou, quand on met en spoiler , celui ci ne prend pas la taille du texte dedans.Ca évite les messages de 15 km de long .Ici ca sert a rien en effet
Marsh Posté le 16-12-2005 à 16:03:55
Ha ouais pas bête comme idée... Dommage que ça ne marche pas ici en effet
Marsh Posté le 16-12-2005 à 12:07:46
Bonjour
Je rencontre un petit problème dans le parcours de composant d'un fiche
Extrait du code concerné
for I := 0 to ComponentCount - 1 do
begin
if Components[i] is TEdit then
begin
TEdit(Components[i]).ReadOnly := True;
TEdit(Components[i]).Color := ClInfoBk;
End;
if Components[i] is TFrmExpression then
Begin
TFrmExpression(Components[i]).SynEdit_Saisie.ReadOnly := True;
TFrmExpression(Components[i]).SynEdit_Saisie.Color := ClInfoBk;
End;
if Components[i] is TComboBox then TComboBox(Components[i]).Enabled := False;
if Components[i] is TCheckBox then TCheckBox(Components[i]).Enabled := False;
end;
Le code passe bien par les TEdit et TComboBox mais je détecte pas les TFrmExpression qui sont des form créés dynamiquement et imbriqué dans des panels de la fiche que je parcours.
Une idée ?
Message édité par TenjO TengE le 16-12-2005 à 12:12:43
---------------
[ Team CDM 2018 ]