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 :

erreur 'impossible de rendre modale une fenêtre visible'


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut erreur 'impossible de rendre modale une fenêtre visible'
    bonjour j'ai une erreur 'impossible de rendre modale une fenêtre visible'
    voila mon code il affiche un graphe
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure TFResultats.BoutonCalculeThermiqueClick(Sender: TObject);
      var
      listresultats: TobjectList;
      Horaire : boolean;
      SerieTemps, Serietheta: TLineSeries;
      NombrePoints : integer;
     
    begin
    listresultats:=ResultatsSelectionnes();
    if (listresultats.Count= 1) then
    begin
    serietheta:=tlineseries.Create(self); //,Tobjetmultimetre a rjouter dans mon  constructeur
    fichecalculethermique :=Tfichecalculethermique.Create(nil,OrdonneeSelectionnee,Tobjetresultats(listresultats.items[0]),TLineSeries(SerieTheta));
    fichecalculethermique.ShowModal ; mon erreur est dans cette ligne 
    if fichecalculethermique.ModalResult=mrOk then
    begin
     NombrePoints := 5000;
      Horaire:=RadioAbscisseHoraire.Checked;
     SerieTheta.title:='temperature d''échauffement -'+PanneauOnglets.ActivePage.Caption;
     
    //Changement d'onglet de temperature
      NouvelOnglet();
      CreerGraphique(PanneauOnglets.ActivePage);
      setlength(ProprietesOnglet,PanneauOnglets.ActivePage.TabIndex+1);
     
      ProprietesOnglet[PanneauOnglets.ActivePageIndex].Temperature.Actif:=true;
      ProprietesOnglet[PanneauOnglets.ActivePageIndex].Temperature.SerieTemperature:=serietheta;
      ProprietesOnglet[PanneauOnglets.ActivePageIndex].Temperature.Horaire:=Horaire;
     ChargerOnglet();
      end
    end
    est ce que y a une autre instruction a part showmodal pour résoudre ce problème

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Dans l'inspecteur d'objet, mets la propriété Visible de fichecalculethermique à FALSE.

  3. #3
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut erreur 'impossible de rendre modale une fenêtre
    je suis une débutante dans ce langage ça veux dire quoi inspecteur d'objet

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut erreur 'impossible de rendre modale une fenêtre visible'
    effectivement j'ai mis dans l'inspecteur d'objet, la propriété Visible de ma fichecalculethermique à FALSE; mais j ai toujours le même problème

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    As-tu vérifié dans le Fichier DPR (ou Option du Projet, Fiches créées automatiquement), tu pourrais avoir deux instances de Tfichecalculethermique qui se mélange !

    Dans le FormCreate du Tfichecalculethermique, tu ne touches ni à Visible ni à Show ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    d’après 'Fiches créées automatiquement'
    j'ai cliqué sur Outils > Options > Options d'environnement > Barre d'outils des composants par contre au lieu de Barre d'outils des composants il y a inspecteur objet , palette d'outils ,option delphi
    j'ai la version delphi xe2 je sais pas ou chercher exactement

  8. #8
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu vas trop vite, la page contenait à la fin ceci

    Créer automatiquement fiches & modules de données

    Indique ou non de créer automatiquement les fiches. Lorsque cette option n'est pas cochée, les fiches ajoutées au projet après la première sont placées dans la liste des fiches disponibles et non dans la liste des fiches créées automatiquement.

    Vous pouvez changer l'endroit où chaque fiche est listée en choisissant Projet > Options > Fiches.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Citation Envoyé par fz.saida Voir le message
    effectivement j'ai mis dans l'inspecteur d'objet, la propriété Visible de ma fichecalculethermique à FALSE; mais j ai toujours le même problème
    Le constructeur de Tfichecalculethermique est redéfini. Contrôle qu'il n'y a pas un Visible := TRUE dedans. Même chose dans l'événement OnCreate.

  10. #10
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    oui effectivement j'ai enlever de mon programme principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      //Application.CreateForm(TficheCalculeThermique, ficheCalculeThermique);
    aussi dans mon inspecteur objet de ma ficheCalculeThermique j'ai vérifier que la priorité de visible est false mais j'ai toujours ce problème

  11. #11
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    quel est le code de Tfichecalculethermique.Create ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  12. #12
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par fz.saida Voir le message
    oui effectivement j'ai enlever de mon programme principale ... CreateForm ...
    Un bon point, le risque de collision d'instance est donc écarté, reste l'autre problème le ou les constructor, celui que l'on voit gère 4 paramètres


    Comme le souligne Paul Toth : quel est le code de Tfichecalculethermique.Create ?

    Ce n'est que la 3eme fois que l'on te le fait remarquer :

    Citation Envoyé par ShaiLeTroll Voir le message
    Dans le FormCreate du Tfichecalculethermique, tu ne touches ni à Visible ni à Show ?
    Citation Envoyé par Andnotor Voir le message
    Le constructeur de Tfichecalculethermique est redéfini. Contrôle qu'il n'y a pas un Visible := TRUE dedans. Même chose dans l'événement OnCreate.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  13. #13
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    j 'ai pas compris ceci Le constructeur de Tfichecalculethermique est redéfini. Contrôle qu'il n'y a pas un Visible := TRUE dedans. Même chose dans l'événement OnCreate.

    pour moi mon constructeur il est approprié a ma fiche thermique et je l'ai mise dans mes uses de ma fiche résultat alors je px l utiliser dedans mon problème c est la façon dans j appelle la fiche que j'ai créé en cliquant sur un bouton qui se situe sur ma fiche résultat .

    au mode débogage il bloque sur le showmodal même si j ai vérifier que la propriété visibilité et pas active dans l'inspecteur objet .

    concernant cette partie l'événement OnCreate il a 2 instructions dedans mais je lai laisser vide

  14. #14
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Et si tu recherchais simplement le terme Visible dans ton unité

  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par fz.saida Voir le message
    j 'ai pas compris ceci Le constructeur de Tfichecalculethermique est redéfini. Contrôle qu'il n'y a pas un Visible := TRUE dedans. Même chose dans l'événement OnCreate.
    ton code indique "Tfichecalculethermique.Create(nil,OrdonneeSelectionnee,Tobjetresultats(listresultats.items[0]),TLineSeries(SerieTheta));" qui n'est manifestement pas le constructeur d'une fiche, nous pensons que ton erreur est dans ce code, en tout cas c'est là que j'irais vérifier en premier lieu.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  16. #16
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    j ai mis ceci pour que mon bouton soit visible dans certain cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       //affichage du bouton  calcule thermique
       if (ListeDesResultats.Count=1) and  ((Ordonnee=CourantSecond) or (Ordonnee=CourantCat) or (Ordonnee=CourantFeeder) or (Ordonnee=CourantRailSol) or (Ordonnee=CourantRail) or (Ordonnee=CourantSol) or (Ordonnee=CourantCdpa) or (Ordonnee=CourantPorteur) ) then
        begin
        BoutonCalculeThermique.Visible:=true; //r
        BoutonCalculeThermique.Enabled:=true; //r
     
        end
      else
      begin
        BoutonCalculeThermique.Visible:=false; /// r
        BoutonCalculeThermique.Enabled:=false;  //
        end;
    mais ceci ça concerne que mon bouton pas ma fiche le fait de clique sur ce bouton permettra d'afficher ma fenêtre

  17. #17
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    voila mon constructeur de ma fiche thermique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    constructor TficheCalculeThermique.Create(AOwner: TComponent; Resultat:TTypeResultat ;resultatcourant:TObjetResultats;SerieTheta: TLineSeries);
    begin
    //inherited Create(AOwner);
     self.I:= resultatCourant;
    self.SerieTheta:= serietheta;
    self.resultat:= Resultat;
    end;
    et celui de fiche resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichecalculethermique:=Tfichecalculethermique.Create(nil,OrdonneeSelectionnee,Tobjetresultats(listresultats.items[0]),TLineSeries(SerieTheta)); //items nimporte kel objet dans la liste (mon objet)
    c est la même chose juste dans le 2eme je récupère des donné de ma fiche résultat actuel si ce n'ai eté pas la même chose mon programme ne compileras pas

  18. #18
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    et pourquoi le constructeur hérité est-il en commentaire ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  19. #19
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Je dirais même plus !
    Le inherited est indispensable pour invoquer le constructeur ancêtre de TForm

    D'ailleurs, comment charge-t-il le DFM ?
    C'est le inherited Create qui appel le inherited CreateNew ... c'est là que le DFM est chargé !
    A mon avis, si l'on regarde BoutonCalculeThermique il est à NULL durant le constructor, il ne prend de valeur qu'après le inherited Create

    l'appel du OnCreate lui est effectué lors du AfterConstructor pour garantir un chargement complet de l'objet

    Aurais-tu plusieurs constructor Create marqué en overload ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  20. #20
    Membre du Club
    Femme Profil pro
    genie des systemes automatisés
    Inscrit en
    Avril 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : genie des systemes automatisés
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 49
    Points : 60
    Points
    60
    Par défaut
    effectivement je l'ai mise en commentaire car dans pas d'autre fenêtre dans le programme que je développe elle était en commentaire quand je l' ai rajouté j'ai plus cette erreur donc l'erreur était que cette partie étai en commentaire.
    tu pourrais m'expliquer pourquoi quand j'ai remis cette partieinherited Create(AOwner); j'ai plus d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    constructor TficheCalculeThermique.Create(AOwner: TComponent; Resultat:TTypeResultat ;resultatcourant:TObjetResultats;SerieTheta: TLineSeries);
    begin
    inherited Create(AOwner);
     self.I:= resultatCourant;
    self.SerieTheta:= serietheta;
    self.resultat:= Resultat;
    end;

Discussions similaires

  1. Rendre modale une fenêtre QTableView
    Par farabi dans le forum Débuter
    Réponses: 3
    Dernier message: 05/05/2015, 16h15
  2. Réponses: 4
    Dernier message: 07/07/2009, 13h29
  3. Impossible de rendre modale une feuille..
    Par lenrok dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/01/2007, 09h21
  4. Erreur sur l'ouverture d'une fenêtre popup
    Par misa dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/11/2005, 15h21
  5. [MFC] Rendre modale une CFindReplaceDialog
    Par GrimKo dans le forum MFC
    Réponses: 2
    Dernier message: 17/05/2005, 06h41

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