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

Delphi Discussion :

passage variables entre form


Sujet :

Delphi

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Points
    158
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Par défaut passage variables entre form
    bonjour, tout est dans le titre en fait presque, j'ai plusieurs form dans mon projet ,je voudrais avoir des variables globales au projet meme pour pouvoir les utiliser dans différentes fom, comment dois je les déclarer ?
    merci

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 564
    Points
    3 968
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 564
    Points : 3 968
    Par défaut
    Salut

    Remarque (J'espère ne pas te l'apprendre): l'utilisation inconsidérée de variables globales n'est pas conseillée d'une manière générale, c'est une bonne façon pour produire un logiciel immaintenable.

    En effet, le contrôle de la valeur d'une variable globale peut devenir rapidement difficile, des maintenances en grand nombre ne font en général qu'empirer la situation surtout si le turn-over dans l'équipe est important, il est tellement facile et tentant d'employer une variable déjà déclarée ! mais cela eput entraîner des régressions parfois très inattendue et pas toujours au meilleur moment (mise en prod...).

    La transmission de valeurs globales entre des fiches ne nécessite pas l'utilisation de variables globales, on peut propager ces valeurs entre des fiches via des propriétés dédiées.

    Sinon, une technique courante (malheureusement) pour mettre en oeuvre des variables globales consiste à créer une unité spécifique (UGlobal.pas par exemple) qui contiendra les déclarations de ces variables dans le paragraphe Interface de l'unité. En ajoutant le nom de l'unité dans la clauses uses des unités utilisatrices, les variables globales deviennent alors toute disponibles.

    Mais je ne préconise cette méthode.

    cdlt

    e-ric

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Points
    158
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Par défaut
    tout d'abord merci de ta réponse,pr les variables globales je suis au courant mais travaillant seul et ne connaissant pas les propriétés dédiées je me suis tourné vers cette solution, quelles sont donc ces propriétés dédiées et comment les utiliser ?
    merci

  4. #4
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Points
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Par défaut
    Salut,
    Si je ne m'abuse, ce qu'il te propose c'est, dans ton Unit de ta form il existe, dans la déclaration de la class de ta forme, deux sections nommés Private et Public.
    En terme d'accessibilité, tout ce qui se trouve dans Private ne pourra être accessible que par l'unité elle-même. A l'inverse tout se qui se trouve dans Public sera accessible par tout composant créer comme la classe.
    Exemple :
    Si tu déclares une variable MaValeur dans Private et que depuis une autre fiche tu fasses : MaForm.MaValeur; ton programme plantera (en fait il ne compilera même pas). Par contre ceci marchera si tu déclares ta variable dans Public.

    Ensuite il est plutot coutume d'interdire l'accès directe à des variables comme ça (enfin je crois ) c'est pourquoi il est intéressant d'utilisé les propriétés. Je te donne un exemple, je t'explique et j'en arrête là avec mon intervention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    MaForm = Class(TForm)
     //tous tes composants
    Private
     fMaVariable : MonType;
    Public
     Property MaVariable : MonType Read fMaVariable;
    End;
    ...
    Ainsi dans ton unité tu modifies ta variable comme tu le veux, et pour récupérer sa valeur depuis l'extérieur tu n'as plus qu'à faire :
    LeNomDeTaForm.MaVariable;


    Ai-je été assez clair ?


    Et pour eric est-ce bien ça ?


    Bonne chance et n'hésite pas à revenir si besoin de lumière

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Points
    158
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Par défaut
    merci beaucoup ca fonctionne

  6. #6
    Membre actif
    Homme Profil pro
    Freelance
    Inscrit en
    Décembre 2003
    Messages
    423
    Points
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Décembre 2003
    Messages : 423
    Points : 259
    Par défaut
    Citation Envoyé par Mihalis
    merci beaucoup ca fonctionne
    Mais de rien

    Juste pense à appuyer sur le bouton Résolu pour rester dans les normes


    Bon dev'

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

Discussions similaires

  1. passage de variables entre forms
    Par dgkourou dans le forum C#
    Réponses: 4
    Dernier message: 24/03/2013, 09h20
  2. Passage de variables entre Forms
    Par Tanoak_LaCapuche dans le forum C#
    Réponses: 3
    Dernier message: 19/04/2012, 11h53
  3. Réponses: 1
    Dernier message: 15/11/2008, 20h19
  4. vb.net : Partage des variables entre forms
    Par House MD dans le forum VB.NET
    Réponses: 5
    Dernier message: 13/03/2008, 23h46
  5. [vb net]passage de variable entre form !
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/09/2006, 14h06

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