Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Objet de Class et propriétés communes



  1. #1
    Codi19

    Objet de Class et propriétés communes


    ------

    Salut

    Je code principalement sous vb avec Excel

    Alors voila
    je cherche un moyen de lister et connaître les méthodes et propriétés d'un objet
    Je pourrais faire du cas par cas en demandant le type de class de chaque objet et ainsi connaissant la class je connais préalablement les méthodes et propriétés Mais cela m'impose de faire une très grosse partie conditionnelle de if..pour les appelle

    mais je cherche un moyen plus condensé par exemple plusieurs class possèdent
    Une propriété name caption ou autre commune.
    Je préfère donc me concentrer sur ces appel commun sans avoir à les répéter à chaque fois

    -----
    L'imagination est l'outil le plus proche de la vérité.Mef quand même !

  2. Publicité
  3. #2
    le fatumbi

    Re : Objet de Class et propriétés communes

    bonjour,
    En cherchant du coté de la collection "watches" (la fenêtre introspection) de l'objet application, tu pourrais peut-être avec de la chance avoir quelque chose de relativement élégant.

    Sinon, en exploitant le mécanisme d'exception de VB (quelque chose du genre "Try" à la sauce VB) ça pourrait faire l'affaire:

    p.ex.: test si l'objet est un "CommandButton"

    Code:
    Private Function Try_Is_A_Button(a As Object) As Boolean
    Dim b As CommandButton
    Dim ok As Boolean
    On Error GoTo not_a_button
            ok = False
    
            'devrait causer une erreur si les types sont incompatibles... mébon
            Set b = a
            ok = True
    not_a_button:
            Try_Is_A_Button = ok
    End Function
    
    Private Sub bouton_zozo_Click()
    Dim a As Object
        For Each a In Me.Controls
            If Try_Is_A_Button(a) Then
                MsgBox a.Name & " est un bouton"
            Else
               'là, on peut enchainer les elsifs...
                MsgBox a.Name & " n'est pas un bouton"
            End If
        Next a
    End Sub
    Et, à la réflexion, lister toutes les propriétés qui t'intéressent avec un simple "on error resume next" , ça ne devrait pas faire trop moche dans le paysage

  4. #3
    Codi19

    Wink Re : Objet de Class et propriétés communes

    Excellant

    Mercie beaucoup Cela change carrément mon approche
    Alors que j'en étais à faire des GetwindowsClassname de l'API En donnant hwnd du control un peu lourd non !

    La c'est du light bien claire et précis comme j'aime

    J' adore le " For Each a In Me.Controls "
    Cas fait un "set a=Me.Controls(index)" en même temps
    Et la macro fonctionne impec.Mais mon problème est un peu plus ardu

    A.name est une propriété de l’objet A Mon problème est A.xxxx qui sont ils ?
    il me faudrait pouvoir lister tout ces A.Caption ,A.heigh,A.ForeColor ....

    La ou c'est cool aussi dans ta macro
    "Set a=Me.Controls(0) = Button1" "Set a=Me.Controls(1) = Image1"

    je n'ai qu’à faire "A.name" pour les avoir le nom. Que ce soit un bouton ou une image peut importe !
    Alors pour lister tout ces A.Caption ,A.heigh,A.ForeColor ....Je pourrai faire une série de
    Error resume
    A.CofeePlease
    if err.number=0 then CofeePleaseExist=True


    Avec tous les A.x existant A.xxxxxxx mais j’atteins de milliard de combinaison
    J'ai bien essayé de faire des Enumprocess de l'API Mais c'est plus que lourd à gérer c'est L'horreur et j'arrive à rien.
    Par contre tous les objets ne sont pas communs Et c'est peut être la que ça va coincer.

    Si je me programme un Class toto Je vais y mettre ma soupe et quant je créerais un objet de class Toto Set Obj = new toto
    Comment je fais pour savoir qu'il y à un Obj.soupe sans le savoir à l'avance ?
    C'est justement la mon souci. faut dire que je suis programmateur J’ai appris sur le tas et y a pas mal de truc que je sais pas faire.

    'On en apprend tous les jours, j'ai hâte d'être a la fin.#! Non c pas ça
    Mieux vaut savoir à l'avance"

    Merci de m’avoir donner un peut de ton savoir.
    L'imagination est l'outil le plus proche de la vérité.Mef quand même !

  5. #4
    le fatumbi

    Re : Objet de Class et propriétés communes

    Je ne comprend pas bien le besoin de lister toutes les propriétés de tous les controles, en fait...

    En général, quand on programme, on réfléchit dans l'autre sens:
    On connait les classes des objets qu'on utilise, donc leur propriétés et méthodes et donc on les maitrise.
    édit: surtout ceux que l'on crée soit même...

    S'il s'agit de faire de l'introspection dans un but de debugg, la fenêtre espion devrait t'aller... ou c'est justement le but, faire une fenêtre espion à ta sauce ?
    Je n'ai pas regardé "watches" en détail, mais en y inscrivant "application" on devrait pouvoir visualiser tout ça, au moins dans la fenêtre espion. Voir si ça peut s'explorer en gaffant à ne pas récurser par "parent".

    Par contre:
    S'il s'agit comme je pensais de modifier une propriété commune bien spéciale de tous les controles d'une même form ou de l'appli entière, (par exemple effacer toutes les entrées texte avant une saisie, ou traduire tous les captions selon la langue...), c'est quand même pas la mort non ?

    Il me semble aussi que la propriété "tag" (string) doit exister et être complètement inutilisé, s'il faut p.ex. marquer les objets à la création pour mieux les retrouver ensuite.

  6. #5
    Codi19

    Re : Objet de Class et propriétés communes

    Citation Envoyé par le fatumbi Voir le message
    S'il s'agit de faire de l'introspection dans un but de debugg, la fenêtre espion devrait t'aller... ou c'est justement le but, faire une fenêtre espion à ta sauce ?
    C'est plus dans cette optique une "fenêtre espion", sans vouloir faire du hacking non plus.
    J'aimerai pouvoir connaître tous les contrôles d'une appli pouvoir la piloter tant qu’a faire
    mais je ne connais pas tout les objet exotique qui la composent et les fonctions de ces objets. et j'aimerai pouvoir les lister.

    Excuse moi pour la clarté c'est sur que si j'avais voulu lister les fonctions de contrôle connu ou que j'avais comme model prédéfini, honte a moi

    Je vais regarder un peut plus en détaille je ne suis pas 24/24 sur ce projet.
    Je ne veux pas déranger tous le monde non plus.

    Citation Envoyé par le fatumbi Voir le message
    Je n'ai pas regardé "watches" en détail, mais en y inscrivant "application" on devrait pouvoir visualiser tout ça, au moins dans la fenêtre espion. Voir si ça peut s'explorer en gaffant à ne pas récurser par "parent".
    L'imagination est l'outil le plus proche de la vérité.Mef quand même !

  7. A voir en vidéo sur Futura

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/11/2008, 15h00
  2. Réponses: 0
    Dernier message: 20/05/2006, 17h06
  3. 4 communes testent le Village communicant
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 3
    Dernier message: 08/03/2006, 14h51
  4. 100 mbit/s à Versailles (et communes alentours)
    Par Nico78 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 27/05/2005, 07h20
Découvrez nos comparatifs produits sur l'informatique et les technologies.