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 :

Ne pas afficher un message d'erreur


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Ne pas afficher un message d'erreur
    Bonjour,

    Dans une form je dispose d'un seul edit, mais je ne veux pas que ce composant ait le focus à l'ouverture de la form, alors je déclare la propriété visible à false ce qui génère une erreur

    Question : Comment faire pour que l'erreur ne soit pas déclenchée ? ou exite-t'il un moyen pour que ce composant n'est pas le focus sans déclencher d'erreur ?

    Un exemple de code serait bienvenu

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    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 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Cacher un Edit ne devrait pas poser de problème !
    Tu ne nous fournis pas le message d'erreur ! On peut donc imaginer n'importe quoi !

    Vérifie TabStop et TabOrder, tu peux très mettre TabOrder à zéro d'un TButton, celui-ci sera le controle actif à l'ouverture de la fenêtre au lieu du TEdit !

    Il est vrai que retirer le Focus sur l'unique controle de la form, ce n'est pas facile en réalité !
    Suffit de le voir avec un MessageDlg, j'en ai fait une variante ou je voulais que ni OK ni Cancel soit actif pour éviter des furieux du clavier qui ne lisent pas les messages importants ou lors de l'utilisation de Douchette à CodeBarre qui envoie ENTER (ce qui ferme les MessageBox)

    Tu ne peux pas faire de SetFocus durant le OnCreate, tu peux le déporter dans OnActivate ou OnShow

    Tu peux gérer un booléen pour déterminer si c'est la 1ère activation ou non (sinon à chaque reprise de focus, cela relancera ce code, moi, souvent, j'affecte le gestionnaire à nil, car souvent, je n'ai besoin de lui qu'une fois pour la durée de vie de cette instance !)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut J'ai trouvé une astuce qui marche
    1) je déclare sa propriété couleur identique à la form
    2) la propriété text vide
    3) readonly à true
    4) borderstyle à bsNone
    5) tagorder à 0

    De cette manière il est invisible jusqu'à que je souhaite l'utiliser

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    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 563
    Points : 25 165
    Points
    25 165
    Par défaut
    C'est du délire !
    tu mets Visible à False dans l'inspecteur d'objet ou durant le OnCreate ou le constructeur
    Cela fonctionne ! Il n'y a pas de message d'erreur !
    Tu n'aurais pas "OldCreateOrder" à True ?
    Si oui, durant le OnCreate la DFM n'a pas été chargée ce qui fait que les membres publiées comme les boutons ne sont pas instanciés et donc Violation d'Accès !


    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
      Edit1->Visible = false;
    }
     
    void __fastcall TForm1::FormDblClick(TObject *Sender)
    {
      Edit1->Visible = true;
    }

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

Discussions similaires

  1. [XL-2007] Comment ne pas afficher un message d'erreur ?
    Par j.lebowski dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/08/2010, 11h56
  2. Réponses: 0
    Dernier message: 15/06/2010, 21h22
  3. Ne pas afficher un Message d'erreur
    Par titeZ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2007, 13h39
  4. [C#] Fenêtre pour afficher un message d'erreur
    Par radicalrider dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/08/2005, 11h01
  5. comment affiché un message d'erreur
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/11/2004, 12h12

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