Bonjour,
Si vous avez essayé la solution du Array of TEdit, il aurait été bien de montrer le code que vous aviez produit, car ce doit être une simple erreur de code.
Voici en gros comment cela devrait se présenter :
1 2 3 4 5 6 7 8 9 10 11
| // dans la partie private ou public de la form
MyArrayofTEdit : Array [0..9] of TEdit;
....
// dans le onCreate
MyArrayofTEdit[0]:=Edit1;
...
MyArrayofTEdit[9]:=Edit10;
...
// dans la partie où l'on veut changer la propriété
for i:=0 to 9 do
MyArrayofTEdit[i].Color:=.... |

Envoyé par
1bernard1
Vos deux premières solutions ont les places où sur la fiche pour pouvoir les utiliser par la suite comme des edit ordinaires sur toute la fiche ?
Pour que le code soit utilisable partout, plusieurs solutions (encore ! je dois avoir un peu de gènes normands).
Soit vous faites une procédure publique :
procedure ChangeMyEditColor(const Couleur : TColor ); // (je n'ai pas vu la version de Delphi, mais je pense que c'est un programme VCL)
Soit vous avez une version de Delphi qui prend en charge les collections.
Soit vous faites une approche objet ou classe : vous déclarez votre Array comme une Class et vous ajoutez propriétés et procédure de changement à cette classe
encore une fois schématiquement (donc non testé et écrit à la volée)
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
| type ArrayEdit = Class
private
FTableauEdit : Array of TEdit;
FColor : TColor
FCount : integer; // pour connaitre le nombre
public
property Color : TColor read FColor write SetColorArray;
property TableauEdit : Array of TEdit;
procedure AddAnEdit(E : TEdit);
end;
procedure ArrayEdit.AddAnEdit(E : TEdit)
begin
// ajout
Fcount:=FCount+1;
// augmentation de la taille de l'array
SetLength(FTableauEdit,FCount);
// passage du TEdit
FTableauEdit[Fcount]:=E;
end;
procedure SetColorArray(value : TColor);
begin
if FColor=Value then Exit;
FColor:=Value;
// ici le code pour les changer la couleur des TEdits
end;
..... |
Partager