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 :

Problème d'affectation d'une variable publique


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut Problème d'affectation d'une variable publique
    bonjour,
    j ai une form newpiece creeer en mode conception

    je veux creer une instance de cette fenetre appeller newfacture comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    procedure TForm1.newfacture1Click(Sender: TObject);
    var
    newfacture:Tnewpiece;
    begin
    Application.CreateForm(Tnewpiece, newfacture);
    newfacture.caption:='Nouvelle Facture';
    newfacture.typepiece:='Facture';
    newfacture.show;
    end;
    et dans Tnewpiece j ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public 
       typepiece:string;
      end;
    var
      newpiece: Tnewpiece;
     
    implementation
    {$R *.dfm}
    procedure Tnewpiece.FormShow(Sender: TObject);
     
    begin
    showmessage(tyepiece);  // jai un message vide !!!! 
    end;
    apres un newfacture.show
    pourquoi la variable typepiece n'est pas egal a 'Facture' ?

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut et bienvenue

    Essaye en créant ta fiche plutôt de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.newfacture1Click(Sender: TObject);
    var
      newfacture:Tnewpiece;
    begin
      newfacture := TNewFacture.Create(Application);
      newfacture.caption:='Nouvelle Facture';
      newfacture.typepiece:='Facture';
      newfacture.show;
    end;
    @+ Claudius

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut
    merci pour ta reponse Cl@udius

    j ai pas une classe appellé Tnewfacture


    j expose mon probleme autrment
    j ai creer en mode conception une form newpiece :Tnewpiece
    je veux utiliser cette form pour nouvelle facture ou un nouveau devis

    le probleme commeent creer dynamiquement cette form et initier des propreité comme le caption et typepiece ?

    pour le caption avec mon code ca marche mais pour la variable public
    typepiece ca marche pas !!!

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 504
    Points : 2 776
    Points
    2 776
    Billets dans le blog
    10
    Par défaut
    Il suffit de mettre ton message dans la procédure associée à l'événement OnActivate da la fiche appelée

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par boufano Voir le message
    j ai pas une classe appellé Tnewfacture
    A oui effectivement !
    Et ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    newfacture := TNewPiece.Create(Application);
    As-tu essayé ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut
    j ai mis mon message dans onactivate ca marche pas !
    j ai creer avec newfacture := TNewPiece.Create(Application); pareil

    j ai mis un Tbouton dans newpiece et dans l evenement onclick j ai mis mon message comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure Tnewpiece.Button1Click(Sender: TObject);
    begin
    showmessage(typepiece);
    end;
    et la il m affiche correctement Typepiece
    je comprend rien

    la fenetre newpiece est de type mdichildren peut etre c est en rapport avec mon problem
    merci

  7. #7
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    610
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 610
    Points : 2 076
    Points
    2 076
    Par défaut
    Etonnant !

    Essaie de supprimer ton newfacture.Show, pour voir si le show n'est pas automatiquement fait par le framework dès la création. Auquel cas le form est créé/activé, avant que tes lignes d'affectations ne soient exécutés.

    Perso, je créé et montre mes mdiChild comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monMdiChild := TmonMdiChild.Create( monMdiParent ) ;
    monMdiChild.Show
    donc dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    newpiece := TnewPiece.Create( Form1) ;
    newpiece.show;
    Cordialement

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2007
    Messages : 11
    Points : 16
    Points
    16
    Par défaut
    j ai changer Tnewpiece en une fiche normal : FormStyle:=fsnormal et ca marche.
    je pense que dans la creation d'une fiche mdichildren on ne peut pas modifier les variables qu'apres que la fiche soit active et je ne comprends pas pourkoi c est ainsi

    j ai trouver une solution a mon probleme en bidouillons un peu : reecrir le constructeur de Tnewpiece comme cela
    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
     
     
     constructor Create(AOwner: TComponent;parametre:string);
      public
      typepiece:string;
      end;
    var
      newpiece: Tnewpiece;
     
    implementation
    {$R *.dfm}
    constructor Tnewpiece.Create(AOwner: TComponent;parametre:string);
    begin
      inherited Create(AOwner);
    self.typepiece:=parametre;
    end;
    et je creer mes fiche comme ceci :
    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
     
    procedure TForm1.newdevisClick(Sender: TObject);
    var
    newdevis:Tnewpiece;
    begin
    with Tnewpiece.Create(Application,'devis') do
    begin
    caption:='Nouveau Devis';
    show;
    end;
     end;
     
    procedure TForm1.newfacture1Click(Sender: TObject);
    var
    newfacture:Tnewpiece;
    begin
      newfacture := TnewPiece.Create( Form1,'facture') ;
      newfacture.caption:='Nouvelle Facture';
      newfacture.show;
    end;
    merci de votre patience bonne continuation

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/10/2009, 10h52
  2. Affectation d'une variable dans un état
    Par tamerlan dans le forum Access
    Réponses: 26
    Dernier message: 04/04/2006, 09h09
  3. [DEBOGUEUR] tracer l'affectation d'une variable
    Par mimil dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/03/2006, 17h08
  4. Problème de restitution d'une variable.
    Par flyflo dans le forum C++
    Réponses: 4
    Dernier message: 22/01/2006, 15h10
  5. Réponses: 1
    Dernier message: 21/12/2005, 19h08

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