Gérer le Left de 250 Labels

silvergoldsilver Messages postés 21 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 17 septembre 2012 - 16 sept. 2012 à 12:16
SISKODS9 Messages postés 6 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 19 septembre 2012 - 19 sept. 2012 à 00:25
Bonjour,
Comment gérer le Left de 250 Labels sans utiliser l'Inspecteur d'objets ?
Cette procédure, certainement très maladroite, compile mais ne fait rien.

procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
begin
For I:= 1 to 250 do
TLabel(Sender).Left:= 100;
end;

Comment affecter la variable I aux Labels ?
Merci,
sgs

7 réponses

cs_walidlam Messages postés 107 Date d'inscription lundi 30 mai 2011 Statut Membre Dernière intervention 29 avril 2013 1
16 sept. 2012 à 13:40
salut;
voila un petit code
for i := 0 to ComponentCount - 1 do
if (Components[i] is Tlabel) then
      (Components[i] as Tlabel).left:=100;

@+
0
silvergoldsilver Messages postés 21 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 17 septembre 2012
16 sept. 2012 à 18:31
Bonjour,
Ce code fonctionne à la perfection.
Il est dommage de ne pas trouver ce genre d'astuce dans les cours consacrés à Delphi !
Encore merci.
sgs
0
Utilisateur anonyme
17 sept. 2012 à 08:47
Bonjour,
Ce code fonctionne à la perfection.
Il est dommage de ne pas trouver ce genre d'astuce dans les cours consacrés à Delphi !
Encore merci.
sgs


Il est surtout dommage que des gens n'aient pas le courage de chercher : ce genre de code a été donné ici des centaines de fois, il suffit juste de chercher un minimum
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
17 sept. 2012 à 10:50
« Il est dommage de ne pas trouver ce genre d'astuce dans les cours consacrés à Delphi ! »


Ce n'est pas une astuce mais une fonctionnalité de base de Delphi qui est très bien documentée et fait même l'objet d'un exemple dans l'Aide en ligne.

Mais il me semble surtout que les forums sont plus faciles à utiliser que l'Aide.

Dans le même genre d"astuce", il y a FindComponent qui est beaucoup plus souple et qui permet, par exemple, de ranger tes Labels sur plusieurs colonnes en fonction de leur nom :

procedure Ranger;
  var     i: Integer;
          Lbl : TLabel;
  begin
  for i := 1 to 125 do begin
    Lbl := TLabel(Form1.FindComponent('Label'+IntToStr(i)));
    if assigned(Lbl) then Lbl.Left := 100;
  end;
  for i := 126 to 250 do begin
    Lbl := TLabel(Form1.FindComponent('Label'+IntToStr(i)));
    if assigned(Lbl) then Lbl.Left := 200;
  end;
end;


Ou encore :

procedure Ranger;
  var     i: Integer;
          Lbl : TLabel;
  begin
  for i := 1 to 250 do begin
    Lbl := TLabel(Form1.FindComponent('Label'+IntToStr(i)));
    if assigned(Lbl) then if Odd(i) then Lbl.Left := 100 else Lbl.Left := 200;
  end;
end;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
silvergoldsilver Messages postés 21 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 17 septembre 2012
17 sept. 2012 à 15:58
Bonjour,
Il est évident qu'avant de poser une question sur ce site, j'ai le courage, tout de même, de chercher une réponse sur Internet.
Je prends la remarque de Caribensila (merci pour les codes et bravo pour la photo) au premier degré : il est vrai que les forums sont plus faciles à utiliser que l'aide qui est très souvent réductrice, surtout pour les débutants.
Je remarque également que certains commentateurs sont affligés d'une véritable agressivité malsaine qui ne peut que nuire à l'intérêt de ce site.
Ces gens ont vraisemblablement un bon niveau en matière de programmation, mais ont très certainement un niveau nul en matière de pédagogie.
Salut,
sgs
0
Utilisateur anonyme
17 sept. 2012 à 20:07
Il me semble que les gens ne sont pas ici pour etre pédagogues mais pour aider : Aider ca passe aussi par rappeler aux gens que

1)L'apprentissage passe par la recherche, le travail, l'investissement et non par l'assistanat et par le tout cuit

2)Qu'il y a un règlement qui régis les coutumes de ce site (comme tout site)

Je ne vois nullement l'intéret de voir une question identique poser 50 milles fois à part justement polluer le moteur de recherche de ce site (Meme si ce n'est pas fait expres).

Cette question et autres similaires ont été postés un bon paquet de fois et sont utilisés à outrance sur plus d'un code qui a été posté ici : Donc dire que j'ai cherché mais pas trouvé indique que soit tu n'as pas cherché soit que tu as mal cherché.

Pour conclure : ce genre de question ne devrait meme plus figurer sur un forum de développement. La raison est simple : une simple recherche sur google y compris en anglais conduit à des tonnes de réponses.

Mais ceci dit effectivement : il est plus facile de demander sur un forum dans un état d'esprit du tout cuit, que de chercher y compris via l'aide (accessible via une simple touche : F1), aide qui malgré tes mots, est très bien faite : Faut il encore savoir s'en servir ce qui implique un minimum d'effort : D'ou ma remarque
0
SISKODS9 Messages postés 6 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 19 septembre 2012
19 sept. 2012 à 00:25
C'est vrai que chercher un peu n'a jamais fais de mal.
Maintenant pas toujours facile de trouver une réponse précise à un problème, ou être sûr qu'elle soit valable.
Peut être aurait-il mieux valu juste redonner le lien plutôt que partir en croisade
0
Rejoignez-nous