Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1243 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Parcours des composant d'une fiche

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Parcours des composant d'une fiche

n°1268298
TenjO Teng​E
☆☆
Posté le 16-12-2005 à 12:07:46  profilanswer
 

Bonjour  :hello:  
 
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 ]
mood
Publicité
Posté le 16-12-2005 à 12:07:46  profilanswer
 

n°1268415
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-12-2005 à 14:40:08  profilanswer
 

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.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1268427
TenjO Teng​E
☆☆
Posté le 16-12-2005 à 14:47:22  profilanswer
 

Merci de ta réponse , Je vennais juste de trouver la solution a mon problème  :D . 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 );
Var
  I : Integer;
Begin
  for i := 0 to CompToParcours.ComponentCount - 1 do
    begin
      if CompToParcours.Components[i] is TEdit then
      begin
        TEdit(CompToParcours.Components[i]).ReadOnly := True;
        TEdit(CompToParcours.Components[i]).Color    := ClInfoBk;
      End;
 
      if CompToParcours.Components[i] is TFrmExpression then
      Begin
        TFrmExpression(CompToParcours.Components[i]).SynEdit_Saisie.ReadOnly := True;
        TFrmExpression(CompToParcours.Components[i]).SynEdit_Saisie.Color    := ClInfoBk;
      End;
 
      if CompToParcours.Components[i] is TComboBox then TComboBox(CompToParcours.Components[i]).Enabled := False;
      if CompToParcours.Components[i] is TCheckBox then TCheckBox(CompToParcours.Components[i]).Enabled := False;
 
      if CompToParcours.Components[i].ComponentCount > 0 Then
      begin
        InitComponent ( CompToParcours.Components[i] );
      end;
 
    end;
End;


Message édité par TenjO TengE le 16-12-2005 à 14:59:05

---------------
[ Team CDM 2018 ]
n°1268475
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-12-2005 à 15:30:40  profilanswer
 

Pourquoi mettre ton code dans des spoiler ? Il n'est pas si catastrophique, il n'y a pas à en avoir honte [:petrus75]

Message cité 1 fois
Message édité par antp le 16-12-2005 à 16:03:49

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1268518
TenjO Teng​E
☆☆
Posté le 16-12-2005 à 15:59:33  profilanswer
 

antp a écrit :

Pourquiu mettre ton code dans des spoiler ? Il n'est pas si catastrophique, il n'y a pas à en avoir honte [:petrus75]


 
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  :D


---------------
[ Team CDM 2018 ]
n°1268526
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-12-2005 à 16:03:55  profilanswer
 

Ha ouais pas bête comme idée... :D Dommage que ça ne marche pas ici en effet


Message édité par antp le 16-12-2005 à 16:04:12

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Parcours des composant d'une fiche

 

Sujets relatifs
[Delphi] Equivalent de "break"[Delphi / Exception] création de type d'exception particulier
DELPHI DBExpress et MySql[Delphi] VCL de visualisation et calcul scientifique
Java/swing : équivalent de ce composant graphique[Delphi] 2005 Personal + XML
[Delphi] Impossible de liberer la mémoire d´un giflire un flux reseau avec delphi
faire la partie client d'un lecteur de flux webcam avec delphiParcours d'un hash de données XML
Plus de sujets relatifs à : [Delphi] Parcours des composant d'une fiche


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR