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

Langage Delphi Discussion :

Acces au caption d'une form créer dynamiquement


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Acces au caption d'une form créer dynamiquement
    Bonjour, bonsoir

    Je vais peut-être passé pour un boulet, mais voilà.
    J'ai besoin de detruire certaine form qui ont été créer dynamiquement.
    Donc je parcours les form de cette façon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            // On detruit les fenêtres Midi qui ouvrait cette table
              For i:= Self.ComponentCount - 1 downto 0 do
              begin
                if(Self.Components[i] is TForm)
                  And (Self.Components[i].Name <> Self.Name)
                    And (StrPos(PChar(Self.Components[i].Caption),Pchar(TableASupprimer)) <> nil) then
                    Components[i].Destroy;
              end;
    Cette ligne ne fonctionne pas
    (StrPos(PChar(Self.Components[i].Caption),Pchar(TableASupprimer)) <> nil)

    car Self.Components[i].Caption n'ai pas accessible !!!

    Comment faire quand on ne connait pas le name de la form seulement son caption ?

    Merci.

  2. #2
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    Components [] renvoi un TComponent, donc seulement ses propriétés sont acessible à la compilcation. Il faut transtyper dans le type voulu pour compiler comme il le faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            // On detruit les fenêtres Midi qui ouvrait cette table
              For i:= Self.ComponentCount - 1 downto 0 do
              begin
                if(Self.Components[i] is TForm)
                  And (Self.Components[i].Name <> Self.Name)
                    And (Pos(TableASupprimer,TForm(Self.Components[i]).Caption)<>0) then
                    Components[i].Destroy;
              end;
    Note qu'il faut être sur du type avant de transtyper, mais tu le vérifies déjà au début du test. Il n'y a donc pas de soucis.

    PS : StrPos c'est du C J'ai mis Pos à la place

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut Nono40 et merci

    le Transtypage fonctionne bien

    Mais l'utilisation me génère une erreur
    EListerror 'List error out of bound(43)'

    Pourtant cela fonctionne ailleur dans mon programme.

    J'ai retiré le transtypage rien y change.

    Pour quelle raison j'ai ce message ?

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    pourquoi pas utilisé une liste globale de tes forme comme du genre garbagecollector , où tu met seulement les référence et le caption

Discussions similaires

  1. Le chemin d'accès n'a pas une forme conforme
    Par maxmarie dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/11/2007, 22h15
  2. Réponses: 5
    Dernier message: 20/09/2007, 17h53
  3. [Excel] Charger une form créée dynamiquement dans un autre classeur
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/02/2007, 11h58
  4. [VB.net] Acces aux controles d'une form a partir d'une autre
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 25/01/2006, 12h47
  5. Comment faire une Form MDI dynamiquement modale ?
    Par eponette dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/09/2005, 10h14

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