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

Windows Forms Discussion :

Curiosité VB.NET 2008


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut Curiosité VB.NET 2008
    Bonjour,
    Je vous soumet un screen en espèrant que l'un d'entre vous puisse m'expliquer.



    Je résume vite fait : j'ai une déclaration de la form APropos dans l'entête d"un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Module ModuleActiveLock
        Public frmApropos As New frmAPropos
        Public ActiveLock As ActiveLock3_6NET._IActiveLock
    SUr le screen on constate à la fois que frmAPropos semble effctivement connue (regarder ce que donne le curseur et aussi la fenêtre espion qui clairemnt montre que frmAPropos is nothing est faux et pour faire bon poids, le frmAPropoq.visible renvoie bien faux) et pourtant l'exécution de ce if donne l'inverse (comme le montre l'instruction en cours sous la coloration jaune).

    Quelqu'un peut m'expliquer ?
    Squale
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Wow alors là c'est magnifique
    Par hasard, tu n'as pas d'avertissement à la compilation, de message ou autre ? tu as essayé de reconstruire tout ton projet pour voir ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bien content de voir que je ne suis pas le seul étonné.
    A propos des erreurs / avertissement j'utilise une DLL externe écrite à l'époque en VB6 et portée par leurs auteurs en VB2005/VB2008 probablement avec les outils de convertion fournits par Crosoft (donc un poil à l'arrache ) et j'ai un superbe
    MSB3187 : L'assembly référencé 'LaDLLenQuestion.dll' cible un processeur différent de l'application
    Je ne pense donc pas qu'il y est une relation de cause à effet, mais suis évidemment sûr de rien du tout.

    Pour aider un poil le Visual Studio (qui a l'air de se mélanger les crayons), j'ai renommé ma classe frmAPropos en frmAproposDef et du coup changé la déclaration initiale avec
    Public frmApropos As New frmAProposDef

    Et là, l'éxécution devient conforme aux informations fournies par le debugger
    (donc en résumé l'IDE donne les mêmes informations MAIS le
    If frmAPropos Is Nothing Then
    s'exécute correctement).

    Bref, apparement faut pas laisser traîner des ambiguités.
    Squale

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par squale69 Voir le message
    Bref, apparement faut pas laisser traîner des ambiguités.
    Ah bien sur, je pense que tu as en effet trouvé l'erreur.
    Vu que ça fonctionne quand tu changes le nom, c'est donc ça.

    Décidément, le vb ne cessera jamais de me surprendre ... heureusement que je fais du C#

  5. #5
    Membre averti
    Avatar de Rami
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 177
    Points : 330
    Points
    330
    Par défaut
    Oui étonnant...
    ca passe aussi avec l'option strict?
    Ex Moderateur .Net

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Difficile de faire le test ... car j'aurais au moin 50 warning à lever, et franchement pas tous judicieux.
    Squale

  7. #7
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par squale69 Voir le message
    franchement pas tous judicieux.
    Ce qui n'est pas judicieux c'est de ne pas utiliser l'Option Strict et de laisser vb gérer à ça sauce et n'importe comment tous les détails de ton programme, ce qui fini par conduire à n'importe quoi à la fin.
    Tous ceux qui programment en VB.Net préfèrent justement ne jamais utiliser cette option avec comme excuse que c'est plus facile, y'a moins de warning, et j'en passe et ce sont ceux là même qui après trouvent des bugs étranges, des crash, etc.
    C'est pas parce qu'on masque les warning que le programme est correct et sure

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    vb génère des variables globales avec le nom des classes de type form qui retourne une instance nouvelle si aucune existe (ou l'existante si une est ouverte)
    ca permet aux noobs de pouvoir ecrire form2.show sans faire de new et d'accéder à Form1.Textbox1.text sans avoir de référence et de tomber sur la bonne ! (vu que les noobs partent du principe qu'une form y en a qu'une de chaque type ouverte )

    du grand n'importe quoi certes, mais ca explique pourquoi le test est autorisée, c'est un variable dans la portée de l'appli ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    vb génère des variables globales avec le nom des classes de type form qui retourne une instance nouvelle si aucune existe (ou l'existante si une est ouverte).


    C'est ahurissant ! on dirait du VB6 ....

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ces choix ont été fait au début de .net, on peut imaginer que microsoft ne voulait que les gens migrent donc sans trop les troubler ...
    et ensuite impossible de faire marche arrière je pense ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    ces choix ont été fait au début de .net, on peut imaginer que microsoft ne voulait que les gens migrent donc sans trop les troubler ...
    et ensuite impossible de faire marche arrière je pense ...
    Oui, et c'est comme cela qu'on retrouve dans les sources VB.Net de développeurs un peu fainéant des "verrues" dans le style CDate, etc ....

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    cdate et autre y a pas vraiment de soucis, c'est juste un mot clé du langage qui renvoi vers du tryparse

    rien à voir à avec le cas présent qui va à l'encontre de la POO
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par sperot51 Voir le message
    à l'encontre de la POO
    et du bon sens

Discussions similaires

  1. Travailler avec les "Local Database" de .net 2008
    Par Faladin dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/05/2008, 17h33
  2. Pb d'impression avec vb.net 2008
    Par libremax dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/04/2008, 10h44
  3. Réponses: 1
    Dernier message: 28/03/2008, 01h44
  4. changement de compilateur VS.net 2008 par 2005
    Par aefmaaradji dans le forum C++/CLI
    Réponses: 1
    Dernier message: 25/02/2008, 13h30
  5. [MySQL] Connexion avec VB.net 2008 express
    Par afrodje dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/12/2007, 12h03

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