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 :

Donner le focus à une form


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut Donner le focus à une form
    Hi,

    Voici mon problème : dans un environnement MDI, après l'affichage de la MainForm, je souhaiterais afficher immédiatement et automatiquement une fenêtre qui permette de saisir un nom d'utilisateur et un password. J'arrive à afficher la fenêtre password, mais je n'arrive pas à lui donner le focus (qui reste sur la MainForm )

    Une idée ?

    Merci



    JJE

  2. #2
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut
    C'est résolu, merci.



    JJE

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    bonjour

    as tu pense a utiliser

    ou

    Merci d'ajouter un sur les tags qui vous ont aidé

  4. #4
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut
    En fait ma solution au départ était la suivante, mais la form principale ne s'affichait pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TfrmMainForm.FormCreate(Sender: TObject);
    begin
      Application.CreateForm(TdlgLogin, dlgLogin);
    end;
    J'ai donc résolu comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TfrmMainForm.FormCreate(Sender: TObject);
    begin
      Self.Show;
      Application.CreateForm(TdlgLogin, dlgLogin);
    end;
    Mais je me rend compte à présent que quand je ferme dlgLogin, frmMainForm se ferme aussi. Donc toujours pas résolu !



    Groupir

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    re

    j'ai le meme type d'application mais elle n'est pas MDI


    j'ai fais comme cela :

    dans l'evenement OnActivate de la fenetre principale je cree la form "password"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    IF NOT Connection THEN  // pour pouvoir tenir compte de la deconnexion, puis de la connexion d'un autre user
    begin
                IF Application.FindComponent('fpassword') = NIL THEN
                BEGIN
                    fpassword := Tfpassword.Create(Application);
                    fpassword.ShowModal;
                END
                ELSE
                BEGIN
                    fpassword.BringToFront;
                END;
    END;
    la variable devient True si le mot de passe est correct


    a+
    Merci d'ajouter un sur les tags qui vous ont aidé

  6. #6
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 187
    Points : 90
    Points
    90
    Par défaut
    Merci Olivier.

    J'ai finalement résolu le problème en déclarant dlgLogin.FormStyle=fsMDIChild puis dans le .dpr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    begin
      Application.Initialize;
      Application.CreateForm(TfrmMainForm, frmMainForm);
      ...
      Application.CreateForm(TdlgLogin, dlgLogin);
      Application.Run;
    end.
    Ça fonctionne, mais je ne mets pas encore le flag résolu tant que tout n'est pas correctement testé .



    JJE

  7. #7
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Citation Envoyé par Jean-Jacques Engels Voir le message
    En fait ma solution au départ était la suivante, mais la form principale ne s'affichait pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TfrmMainForm.FormCreate(Sender: TObject);
    begin
      Application.CreateForm(TdlgLogin, dlgLogin);
    end;
    J'ai donc résolu comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TfrmMainForm.FormCreate(Sender: TObject);
    begin
      Self.Show;
      Application.CreateForm(TdlgLogin, dlgLogin);
    end;
    Mais je me rend compte à présent que quand je ferme dlgLogin, frmMainForm se ferme aussi. Donc toujours pas résolu !



    Groupir
    Salut

    J'ai déja eu ce probleme. Le truc, c'est que la première form créée par Application.CreateForm sera la form principale, c'est a dire que quand on ferme cette form, l'application se termine. Pour eviter ca, il suffit de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CreateForm(TdlgLogin, dlgLogin);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dlgLogin:=TdlgLogin.Create(nil);
    Bonne chance

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/02/2007, 08h08
  2. [VB20005] Donner le focus à une listview
    Par omgirl dans le forum Windows Forms
    Réponses: 7
    Dernier message: 17/07/2006, 15h17
  3. [VB]donner le focus à une application déja ouverte ou fermée
    Par Nicko29 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 21/01/2006, 14h28
  4. Réponses: 4
    Dernier message: 05/09/2005, 16h01
  5. Réponses: 3
    Dernier message: 22/08/2005, 17h15

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