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

API, COM et SDKs Delphi Discussion :

Garder le focus (Delphi 6) ?


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Garder le focus (Delphi 6) ?
    Bonjour.
    Je connais le 'OnDeactivate' (qu'au passage il faut déclarer dans une routine d'initialisation, et non dans les évènements de la fiche principale). Est-il possible de "bricoler" pour que la fiche principale garde toujours le focus et empêcher justement le 'Deactivate' ? Bref une propriété (ou une instruction "miracle" dans le 'OnDeactivate') qui empêcherait la perte du focus ou le rendrait immédiatement ; il existe bien le 'FsStayOnTop', alors pourquoi pas l'équivalent pour le focus ?
    Merci d'avance ...

  2. #2
    bjl
    bjl est déconnecté
    Membre chevronné Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Par défaut
    Bonjour,

    peut être en héritant le wndproc de la manière suivante (je n'ai pas testé n'ayant pas Delphi sur ce poste)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected
      procedure WndProc(var Message: TMessage); override;
    ...
     
    procedure Tform1.WndProc(var Message: TMessage); 
    Begin
      if Message.Msg = WM_KILLFOCUS then 
        Message.Msg  :=0;
    inherited WndProc( Message);
    End;

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    N'est-ce pas la spécificité d'une fiche modale de ne pas perdre le focus ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Invité
    Invité(e)
    Par défaut Réponse à "Tourlourou"
    Bonjour.
    Il y a deux choses que je ne "capte" pas :
    1) Je n'ai jamais entendu qu'une fiche était modale par elle-même, j'ai toujours entendu qu'en fait elle était affichée de manière modale (ShowModal) à partir d'une autre (mode "popup"). Donc cela commence à avoir des allures d'"usine à gaz"
    2) Apparemment une telle fiche "B" garderait le focus à L'INTERIEUR DE L'APPLICATION, empêchant l'utilisateur de travailler par exemple sur la fiche de départ "A" (qui a affiché "B") avant d'avoir fermé "B" ... Mais cela ne signifierait pas que l'APPLICATION elle-même garderait le focus sur le bureau de Windows (je ne sais pas si j'explique bien ce que je veux dire) .
    Merci ...

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 931
    Billets dans le blog
    6
    Par défaut
    Tu as dans la FAQ : Comment remettre son application en avant plan ?
    Ce code peut-il être déclenché dans le OnDeActivate ou lors d'un WM_KILLFOCUS, selon la proposition de bjl ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Invité
    Invité(e)
    Par défaut Ne pas confondre focus et FormStyle !
    Re-bonjour.
    Ne pas confondre focus et FormStyle ! J'ai essayé le code de BJL dans mon unité, sans succès ; en fait je ne voyais pas comment "l'intégrer" ; soit j'avais des erreurs de compilation, soit le "système" ne fonctionnait pas ! Au passage ma fiche reste toujours au premier plan (sous W2000) grâce à la valeur FsStayOnTop affectée à la propriété FormStyle de la fiche principale (il n'y en qu'une, au passage) lors de la création du projet. Cela pousse la "perversion" jusqu'au phénomène suivant : lors du développement de l'appli, il m'arrivait d'avoir des msg d'erreur sous forme de pop-ups ... avec le bouton OK derrière ma fiche (Bien entendu cela se produisait lors de l'exécution "autonome" du projet, je n'aime d'ailleurs pas exécuter sous Delphi, question de choix personnel). Et comme de plus quelques autres propriétés bloquent la fiche au centre de l'écran ... Bref, ne restait que la "prise des 3 doigts" et l'arrêt de la tâche !
    Merci quand même, j'arrête de "piocher" dans ce sens et me contenterai de mon "Application.OnDeactivate:= ..." ! Fin du topic

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

Discussions similaires

  1. Garder le focus et selectionner tout le texte
    Par Ender dans le forum Access
    Réponses: 2
    Dernier message: 14/08/2006, 12h29
  2. [C#]garder le focus sur un node d'un treeview
    Par Blo0d4x3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/05/2006, 21h23
  3. Réponses: 4
    Dernier message: 22/12/2005, 17h05
  4. Garder le focus si condition fausse
    Par Alexandre Sahli dans le forum IHM
    Réponses: 12
    Dernier message: 07/12/2005, 15h53
  5. [VB.NET] Garder le focus de l'ascenceur
    Par Dnx dans le forum ASP.NET
    Réponses: 2
    Dernier message: 08/07/2005, 16h02

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