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 :

Form en premier plan


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Form en premier plan
    Salut tout le monde
    voilà, j'ai une application de calcul de paie dont le traitement dure un certain temps (environ 20mn). le calcul est lancé à partir, disons de Form1, j'affiche une Form2 qui indique la progression (FormStyle: fsStayOnTop). le problème est que l'utilisateur peut cliquer sur la Form1. Y a-t-il moyen d'empecher la possibilité d'afficher Form2 en ShowModal sans pour autant bloquer le traitement.
    Merci

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Eventuellement, il serait plus simple de faire le calcul dans Form2 par exemple
    Tu initialises d'abord Form2 avec les données de Form1 nécessaires au calcul et lorsque Form2 s'affiche, le calcul est lancé.
    Il y a d'autres moyens mais celle-ci est une des plus simples à mettre en oeuvre
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Ethmane
    Salut tout le monde
    voilà, j'ai une application de calcul de paie dont le traitement dure un certain temps (environ 20mn). le calcul est lancé à partir, disons de Form1, j'affiche une Form2 qui indique la progression (FormStyle: fsStayOnTop). le problème est que l'utilisateur peut cliquer sur la Form1. Y a-t-il moyen d'empecher la possibilité d'afficher Form2 en ShowModal sans pour autant bloquer le traitement.
    Merci
    Bonjour,

    Une solution serait dans la form1 :
    ...
    form2.show;
    form2.repaint;
    ...
    dans la form2 :
    procedure TForm2.FormShow(Sender: TObject);
    begin
    Form1.Enabled := False;
    end;

    procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    Form1.Enabled := True;
    end;
    inconvénient : pendant mon traitement dans Form1 (compteur pour passer le temps), la barre de progression dans la form2 évolue mais la form2 elle même n'est pas "accessible".

    Qui dit mieux ?

  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Peut-être avec cet appel, a essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TForm2.Create(Application).Show;
    De cette façon, ta form2 est en Show "presque" Modal, mais tu as la main sur ta form1 qui n'est donc pas bloquée...

    Enfin... si à cette heure, ce n'est pas moi qui débloque

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    il n'est pas possible de mettre le traitement dans Form2 car c'est un écran de progression que j'utilise dans plusieur écran.
    il m'est aussi impossible de jouer sur la propriété Enabled car c'est une application MDI et même en parcours les MdiChild il reste à bloquer la Form principale.
    Et le
    TForm2.Create(Application).Show;
    ne marche pas.
    Merci quand même

Discussions similaires

  1. Form au premier plan
    Par cocot dans le forum Delphi
    Réponses: 2
    Dernier message: 28/01/2007, 14h05
  2. [C#] form au premier plan
    Par JMsme dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2006, 14h40
  3. Form en premier plan
    Par bandit boy dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/04/2006, 09h25
  4. Définir form au premier plan
    Par Aurèl90 dans le forum Access
    Réponses: 5
    Dernier message: 13/01/2006, 10h20
  5. [VB6]Form en premier plan
    Par VeNus2 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 30/04/2004, 12h05

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