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 :

Comment fermer une fenêtre sous condition ?


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut Comment fermer une fenêtre sous condition ?
    bonjour,


    lors de la fermeture d'une fenetre je voudrais controler que des tables ne soient pas ouvertes en insertion ou edition en me servant de l'événement 'onclose' de la form

    voici le code

    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
     
    procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    if (table1.State in[dsedit, dsinsert]) or (table2.State in[dsedit, dsinsert]) =false then
    begin
     
    table1.Active:=false;
    table2.Active:=false;
     
    end
    else
    begin
    showmessage('Sortie impossible en mode insertion ou modification');
    end;
    end;
    le problème c'est que la form se ferme quelque soit les conditions du IF
    si les tables sont en insertion ou edition, le message s'affichent bien mais la fenetre se ferment quand meme ?

    je voudrais bloquer la fermeture de la fenetre en cas de condition "vrai"
    est ce qu'il faut utiliser exit ou break ?

    merci

  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

    Un p"tit coup de sur l'évènement OnClose t'aurais mené à la description du paramètre Action de type TCloseAction:
    Citation Envoyé par Aide de Delphi
    Description

    TCloseAction comprend les valeurs suivantes :

    Valeur Signification

    caNone La fiche n'est pas autorisée àse fermer et rien ne se passe.
    caHide La fiche n'est pas fermée,juste cachée.L'application peut toujours accéder àla fiche.
    caFree La fiche est fermée et toute la mémoire allouée àla fiche est libérée.
    caMinimize La fiche est réduite,pas fermée.
    Il suffit donc d'affecter la valeur caNone au paramètre Action, et le tour est joué.

    @+ Claudius

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Il serait plus judicieux d'utiliser l'évènement OnCloseQuery qui est fait exactement pour ce que tu veux faire.
    Et de laisser dans le OnClose vraiement que les actions de fermetures/destructions des composants.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    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 Rayek Voir le message
    Il serait plus judicieux d'utiliser l'évènement OnCloseQuery qui est fait exactement pour ce que tu veux faire.
    +1

    Effectivement Rayek a raison, utilise cette évènement et affecte à CanClose True ou False suivant le cas.

    @+

Discussions similaires

  1. Comment fermer une fenêtre Child dans une application MDI
    Par bahiatoon dans le forum C++Builder
    Réponses: 9
    Dernier message: 05/10/2006, 08h57
  2. Comment fermer une fenêtre externe à l'application ?
    Par Matt2094 dans le forum Delphi
    Réponses: 8
    Dernier message: 30/08/2006, 16h52
  3. Comment fermer une fenêtre dynamique avec onclose
    Par nopnop dans le forum Delphi
    Réponses: 23
    Dernier message: 18/07/2006, 18h08
  4. Comment fermer une fenêtre enfant MDI ?
    Par DeveloMagaly dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2005, 13h10
  5. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09

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