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

Composants FMX Delphi Discussion :

Activer une TForm


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut Activer une TForm
    Bonjour à tous,
    j'ai une appli composée de une fenêtre principale et plusieurs autres fenetres.
    Je souhaite rendre une de ces fenetres actives mais rien ne se passe :
    • fenetre.activate : rien ne se passe
    • fenetre.show : rien ne se passe
    • fenetre.showmodal : la fenetre est bien mise en avant plan, mais tout est bloqué.

    Quand je dis rien ne se passe, c'est inexact : en fait, la fenetre ne vient pas en avant plan.

    Je sêche...

    Merci à tous.

  2. #2
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Bon j'ai trouvé une solution :

    fenetre.hide;
    fenetre.show;

    Ca marche. Mais pour être tout à fait franc, je trouve pas ça très satisfaisant. Donc je ne mets pas résolu pour l'instant car je pense qu'une solution plus accadémique doit exister...

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 094
    Par défaut
    Tente aussi un Invalidate

    Sinon le FMX.TForm hérite du TCommonCustomForm ainsi que du TFmxObject, tu devrais donc avoir accès à l'habituel BringToFront

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if fenetre.Visible then
      fenetre.BringToFront()
    else
      fenetre.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

  4. #4
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tente aussi un Invalidate
    Pas convaincu. Le Invalidate déclenche le dessin de la forme, pas son placement en tant que fenêtre active...
    Citation Envoyé par ShaiLeTroll Voir le message
    Sinon le FMX.TForm hérite du TCommonCustomForm ainsi que du TFmxObject, tu devrais donc avoir accès à l'habituel BringToFront

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if fenetre.Visible then
      fenetre.BringToFront()
    else
      fenetre.Show();
    Faut que je vérifie ce soir. Pour autant, la référence de DocWiki indique cette possibilité pour un contrôle visuel dans une fiche, pas pour une fiche... Qui plus est, cela semble uniquement s'appliquer à l'ordre d'affichage du contrôle, pas au transfert de focus.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 094
    Par défaut
    Citation Envoyé par arkhamon Voir le message
    Pas convaincu. Le Invalidate déclenche le dessin de la forme, pas son placement en tant que fenêtre active...
    Je n'avais pas lu la précision "rien ne se passe, c'est inexact...", en fait la fenêtre est là juste en arrière plan, cela renforce mon idée de BringToFront !

    Citation Envoyé par arkhamon Voir le message
    Faut que je vérifie ce soir. Pour autant, la référence de DocWiki indique cette possibilité pour un contrôle visuel dans une fiche, pas pour une fiche... Qui plus est, cela semble uniquement s'appliquer à l'ordre d'affichage du contrôle, pas au transfert de focus.
    BringToFront dans la documentation a une Visibilité Public donc tout objet qui en hérite possède cette méthode, donc TCommonCustomForm, TCustomForm et TForm !
    BringToFront + SetFocus fonctionnait plutôt bien en VCL

    Sinon, je t'aurais bien dit SetForegroundWindow mais c'est purement Windows !
    Pas de FMX.TForm.SetFocus contrairement à VCL.TForm.SetFocus

    Focused est une propriété en lecture\écriture dans TCommonCustomForm, tente de l'affecter à True

    Tu as aussi ShowActivated, TopMost, il semble qu'il y a des spécificités FMX qu'il faut explorer !
    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

  6. #6
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    BringToFront + SetFocus fonctionnait plutôt bien en VCL
    Rhâââââ le nombre de trucs qui fonctionnaient assez bien en VCL...

    Citation Envoyé par ShaiLeTroll Voir le message
    Sinon, je t'aurais bien dit SetForegroundWindow mais c'est purement Windows !
    Pas de FMX.TForm.SetFocus contrairement à VCL.TForm.SetFocus

    Focused est une propriété en lecture\écriture dans TCommonCustomForm, tente de l'affecter à True

    Tu as aussi ShowActivated, TopMost, il semble qu'il y a des spécificités FMX qu'il faut explorer !
    C'est le moins qu'on puisse dire... Faut reconnaitre que pas mal de choses ne réagissent pas de la même façon...
    Bon je vais essayer tout ça ce soir...

Discussions similaires

  1. [VB.NET] Activer une form une seul fois
    Par BenoitM dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/02/2006, 14h44
  2. [Message] Redimensionner une TForm
    Par Manopower dans le forum Langage
    Réponses: 1
    Dernier message: 05/01/2006, 14h28
  3. Activer une frame
    Par marsupilami34 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2005, 11h24
  4. Réponses: 7
    Dernier message: 27/06/2005, 22h05
  5. Problèmes avec une TForm créée dynamiquement
    Par Pascal Jankowski dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/03/2005, 11h55

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