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 VCL Delphi Discussion :

Combobox Set Focus / Impossible de focaliser une fenêtre non focalisée


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 42
    Points
    42
    Par défaut Combobox Set Focus / Impossible de focaliser une fenêtre non focalisée
    J'utilise une combobox drop down chargée à l'ouverture de la fiche par les données d'un fichier
    Elle est utilisée en input de données ensuite. Tout fct bien.

    Je voudrais supprimer le click obligatoire sur la combo, qui permet d'entrer en input sur le combo.txt.
    Pour cela dans l'événement de chargement du fichier dans ma combo, je rajoute Combobox.setfocus..
    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
    16
    17
    procedure TFrmLiv.BtnOuvTitLivClick(Sender: TObject); {Ouvrir fichier des Titres de livres}
    Var  F : textfile; Txt, CheminFichier, NomFichier, ExtFichier, NFichPhys:string;
    begin {1} //Affectation des variables
      txt:='';  CheminFichier:=ExtractFilePath(Application.ExeName); ExtFichier:='txt';
      NomFichier:='TomTitLiv01';
      NFichPhys:=CheminFichier+NomFichier+'.'+ExtFichier;
      AssignFile(F,NFichPhys); {$I-}     //La vérification d'E/S est désactivée
      Reset(F);   {$I+} //La vérification d'E/S est activée
      if {if1} IoResult=0 
      then //Renvoie l'état de la dernière opération d'E/S           
        begin{2}CbTitLiv.items.Clear;CbTitLiv.Items.LoadFromFile(NFichPhys);CloseFile(F);
    __________ICI ____> CbTitliv.SetFocus;
                PnlTitLivLigEta.Caption := 'Fichier "Livre" chargé ou re-chargé dans la boîte déroulante !';end {2} 
        else begin {3}  
        Txt:='Fichier'+#13#10+NomFichier+#13#10+' non présent ou endommagé '+#13#10; Txt:=Txt+'Restaurez le fichier'+#13#10;
        ShowMessage(txt);rewrite(F);Exit;end;{3}
    end;{1}
    et cela me provoque l'erreur de class violation avec "Impossible de focaliser une fenetre no focalisee ou invisible"

    Comment faire dès lors pour donner le focus à la saisie d'un élét nouveau de la combo dès l'entrée de la fiche,après population de la combo?
    Merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Peut-être que ceci répondra à votre question. Attention tout de même que l'on y parle de version relativement ancienne de Delphi.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 42
    Points
    42
    Par défaut Combobox.HasFocus, Restore focus
    Citation Envoyé par Aka Guymelef Voir le message
    Peut-être que ceci répondra à votre question. Attention tout de même que l'on y parle de version relativement ancienne de Delphi.
    Bonjour, J'ai trouvé le correrectif suivant suite àla réponsede Aka, mais une mais l'erreur suivante survient : Identificateursnon déclaré Cbobox.HasFocus et CbBox.RestoreFocus ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     if ComboBox1.HasFocus {and (ComboBox1.Style = csDropDown)} then
       RestoreFocus := true
     else
       RestoreFocus := false;
     
     ComboBox1.Sorted := true;
     
     if RestoreFocus then
       WinProcs.SetFocus(ComboBox1.Handle);
    Ps:même si je déclare des variables boolean...
    Merci

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    RestoreFocus n'est qu'une variable locale dans cette procédure. Pour remplacer HasFocus (qui doit dater du temps des vielles versions de Delphi) je d'utiliser la méthode Focused du TComboBox.

  5. #5
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Alors, les rares fois ou j'ai ce message, je déplace le Compo.SetFocus dans l'evenement OnShow de la fiche qui contient le composant.
    Après, l'erreur ne survient plus

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 42
    Points
    42
    Par défaut Merci ANDY
    Super simple et cela marche.
    Merci Andy,merci,

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Hereux que cela a pu t'aider.
    A+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/12/2010, 13h39
  2. Réponses: 1
    Dernier message: 13/05/2010, 12h43
  3. Réponses: 6
    Dernier message: 03/02/2008, 16h18
  4. Réponses: 3
    Dernier message: 18/06/2007, 19h14
  5. erreur " impossible de focaliser une fenêtre désactivée
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/12/2004, 10h21

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