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

C++Builder Discussion :

TSaveDialog et SetWindowPos


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 43
    Par défaut TSaveDialog et SetWindowPos
    Bonjour,

    Je souhaite en effet utiliser SetWindowsPos sur une boîte de dialogue TSaveDialog.

    Mon pb est le suivant, développant une application pour un écran tactile, j'utilise le composant TAdvPopUpTouchKeyboard pour rentrer des données dans le boite SaveDialog que j'appelle dans l'évènement OnShow de la boîte.

    Or, si par erreur, je clique à côté de la boîte pendant l'exécution, la boîte de dialogue disparait.
    Le seul moyen est alors d'utiliser Alt+Tab pour remettre l'application en avant et faire réapparaître la boîte, chose impossible sans clavier...

    J'aimerais donc utilisé le SetWindowsPos pour soit:
    - remettre la boîte en premier plan
    - soit la redimensionner en plein écran (on ne peut alors plus cliquer à côté !).

    J'ai donc mis dans l'évènement OnShow de la boîte le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TouchKeyboardDialog->Show();
    SetWindowPos(SaveDialog1->Handle,HWND_TOPMOST,0,0,1024,768,SWP_FRAMECHANGED)
    J'ai testé plusieurs options, mais à part des fois supprimer l'accès à l'arborescence dans la boîte...

    Qq a-t'il une solution ?

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    Salut ben c est tout simple

    Je presume qu un clic hors du "dialog" met la fiche en premier plan

    Il faut donc prendre le probleme à l envers et cacher la fiche pendant l utilisation du "dialog"

    donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Form1->Hide();
    OpenDialog1->Execute();
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::OpenDialog1Close(TObject *Sender)
    {
    Form1->Show();
    }

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    On peut forcer une fenêtre pour qu'elle soit toujours au premier plan. Mais je dois avouer a ma plus grande honte que je ne sais plus comment on fait.

  4. #4
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 137
    Billets dans le blog
    5
    Par défaut
    Ca y est je me rappelle il faut mettre le propriété FormStyle à fsStayOnTop. Comme ça la fenêtre reste toujours au dessus des autres

Discussions similaires

  1. Bug builder? TIniFile et TSaveDialog
    Par dj_benz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/10/2006, 15h06
  2. Fichiers par défauts dans TSaveDialog
    Par stroumpf dans le forum Delphi
    Réponses: 3
    Dernier message: 14/06/2006, 17h37
  3. TSaveDialog et Index
    Par Kerod dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/03/2006, 01h18
  4. API SetWindowPos
    Par Philton dans le forum Windows
    Réponses: 3
    Dernier message: 27/09/2005, 09h21
  5. Changement extension avec TSaveDialog
    Par Monteil Jérôme dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/09/2005, 15h31

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