IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

[D6] ControlCount - gerer l'ordre des TControl


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Points
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Par défaut [D6] ControlCount - gerer l'ordre des TControl
    Salut;

    Je passe dans mon code sur tout les TControl de mon panel.

    Je voudrais savoir s'il y'avait une possibilite de pouvoir gerer l'ordre selon lequel les controles vont defiler dans mon for.

    voila un extrait de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for J:=0 to qrband.ControlCount -1  do
    begin
    Cont := TControl( qrband.Controls[J] );
    if (Cont.InheritsFrom(#####))
    etc
    J'espere avoir ete assez clair. Sinon je suis la pour plus de précisions.

    Merci bien à tous.

    [Modération]
    Merci d'utiliser les balises code, Laurent Dardenne
    [/Modération]

  2. #2
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Points
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Par défaut
    Bonsoir,

    La propriété "Controls" vous sert les contrôles enfant d'un contrôle donné selon l'ordre par lequel ils y ont été insérés. Vous avez donc par là une première possibilité pour les ordonner.

    Sinon, il vous est aussi possible de faire un peu de code pour arriver à vos fins : recopier la liste des contrôles dans un TList ou descendant, et effectuer le tri que vous souhaitez pour pouvoir effectuer le traitement que vous voulez. Je vous laisse adapter le code suivant à votre problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function Ordonner(Item1, Item2: Pointer): Integer;
    begin
      { Traitement pour ordonner la liste comme tu veux ici. }
    end;
     
    procedure TForm1.btn1Click(Sender: TObject);
    var
      vIndice: Integer;
      vListeControles: TComponentList;
    begin
      vListeControles := TComponentList.Create(False);
      try
        for vIndice := 0 to ControlCount-1 do
          vListeControles.Add(Controls[vIndice]);
     
        vListeControles.Sort(Ordonner);
     
        for vIndice := 0 to vListeControles.Count-1 do
          { Traitement des contrôles dans l'ordre que tu veux ici. }
     
      finally
        vListeControles.Free;
      end;
    end;

  3. #3
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Points
    10 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 154
    Par défaut
    Comme l'a dit DMO, ils seront donnés dans l'ordre de création sur ta fiche, mais d'abord les contrôles fenêtrés puis les contrôles non-fenêtrés (ou le contraire je ne suis plus certain ). Pour modifier cet ordre (à l'intérieur de chacune de ces deux catégorie), clique droit sur ta fiche en conception, choisis Voir comme texte et coupe-colle les divers contrôles dans l'ordre que tu veux.

  4. #4
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Points
    594
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 594
    Par défaut
    Pour faire plus simple tu click avec le boutton droit tu as ordre de création de tous tes objets tu les rordonnent comme tu veux.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    106
    Points
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 106
    Points : 66
    Par défaut
    Merci de votre aide!

    Quand je clique pour voir ordre de creation comme l'a dit JustMe, je n'ai pas toute la listes des composants. Je crois que ce sont uniquement les composants non-visuels, genre query ect...

    Je vais essayer les autres solutions.

    Merci encore!

Discussions similaires

  1. Gerer l'ordre des options commande ?
    Par 44Magnum dans le forum C
    Réponses: 2
    Dernier message: 24/11/2011, 15h25
  2. Modifier l'ordre des Fields d'un dataset
    Par teska dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/03/2004, 17h38
  3. Modifier l'ordre des cartes son
    Par YéTeeh dans le forum Matériel
    Réponses: 3
    Dernier message: 19/08/2003, 02h13
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 07h53
  5. Question : ordre des bits ?
    Par Choupi dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 07h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo