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 FMX Delphi Discussion :

[D11.1] Remettre à zéro TTabItem et ses composants


Sujet :

Composants FMX Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut [D11.1] Remettre à zéro TTabItem et ses composants
    Bonjour,

    Je voulais savoir si il est possible d'accéder aux composants d'un TTabItem avec une boucle, en fait j'ai déjà cette fonction pour une Form, mais en essayant de l'adapter à un TTabItem, ça ne fonctionne plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for Var I := 0 to Saisie.ComponentCount - 1 do
      if Saisie.Components[I] Is TEdit then
        (Saisie.Components[I] AS TEdit).Text := ''
      Else if Saisie.Components[I] Is TCheckBox then
          (Saisie.Components[I] AS TCheckBox).IsChecked := False
      Else if Saisie.Components[I] Is TRadioButton then
          (Saisie.Components[I] AS TRadioButton).IsChecked := False;
    Le seul Component.Name que je trouve est 'TabItemContent_' en sachant que j'aimerais bien si possible réinitialiser seulement le TabItem et pas toute la fiche.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il manque un niveau, une "page" ne contient que deux éléments : l'onglet (0) et le contenu (1)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     for i:=0 to saisie.Children[1].ChildrenCount-1 do
       begin
    //    memo1.Lines.Add(saisie.Children[1].Children[i].ClassName);
        if Saisie.Children[1].Children[i] Is TEdit then (Saisie.Children[1].Children[i] AS TEdit).Text := '';
        if Saisie.Children[1].Children[i] Is TCheckBox then (Saisie.Children[1].Children[i] AS TCheckBox).isChecked:=false;
        if Saisie.Children[1].Children[i] Is TRadioButton then (Saisie.Children[1].Children[i] AS TRadioButton).isChecked:=false;
      end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    Je vois !

    Mes composants sont dans des composants qui sont dans des composants, du coup va falloir la rendre la fonction récursive maintenant!
    En tout cas merci pour la réponse rapide, problème résolu.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    je trouve plus simple de créer des structures pour cela quitte à le faire à la main

    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
    25
     
    type
      TForm1 = class(TForm)
         Edit1: TEdit;
         Edit2: TEdit;
         ...
         procedure OnCreate(Sender: TObject);
       private
         Edits: TArray<TEdit>;
         CheckBoxes: TArray<TCheckBox>;
         procedure Clear;
         ....
       end;
     
    procedure TForm1.OnCreate(Sender: TObject);
    begin
      Edits := [Edit1, Edit2]; // il est aussi possible de faire une boucle pour rechercher les composants
      ...
    end;
     
    procedure TForm1.Clear;
    begin
      for var e in Edits do e.Text := '';
      for var b in CheckBoxes do b.IsChecked := False;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Points : 187
    Points
    187
    Par défaut
    je trouve plus simple de créer des structures pour cela quitte à le faire à la main
    C'est ce que j'ai fait au début (en moins propre que l'exemple ) mais à chaque fois que je rajoute un composant je doit penser à l'ajouter dans la liste, et je suis bien trop tête en l'air pour y penser à chaque fois.

    En plus le code s'adapte à n'importe quel composant visuel (je crois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure Form1.BtReinitTab(Sender: TObject);
    begin
      for Var I := 0 To (Sender As TControl).ChildrenCount - 1 Do
          if TControl(Sender).Children[I] IS TEdit then
              (TControl(Sender).Children[I] AS TEdit).Text := ''
          Else if TControl(Sender).Children[I] Is TCheckBox then
              (TControl(Sender).Children[I] AS TCheckBox).IsChecked := False
          Else if TControl(Sender).Children[I] Is TRadioButton then
              (TControl(Sender).Children[I] AS TRadioButton).IsChecked := False
          Else
          BtReinitTab(TControl(Sender).Children[I]);
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remettre à zéro les n° de ligne dans la log
    Par Filippo dans le forum SAS Base
    Réponses: 3
    Dernier message: 19/07/2019, 01h57
  2. [VC++2005] Agrandir une "Form" ET ses composants
    Par laatysha dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 08/03/2007, 13h58
  3. [c#] remettre à zéro une form
    Par erazorhead dans le forum Windows Forms
    Réponses: 13
    Dernier message: 06/04/2006, 14h48
  4. remettre à zéro un compteur sql
    Par luimême dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/01/2006, 11h35
  5. Installer ses composants
    Par Geronimo dans le forum C++Builder
    Réponses: 14
    Dernier message: 18/06/2002, 14h51

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