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 :

Déplacer fiche principale à l'exécution


Sujet :

Composants VCL Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut Déplacer fiche principale à l'exécution
    Salut,

    drôle de constation...

    Je dois afficher une fiche au dessus de toutes fenêtres dans le coin infèrieur droit de l'écran (comme les alertes de MSN Messenger).

    FormStyle à fsStayOnTop de ma fiche principale et le tour est joué me diriez vous...

    Dans ce cas il m'est impossible de déplacer cette fiche (dans le coin infèrieur droit de l'écran ou ailleurs), les changements ne sont pas pris en compte.
    Je crois avoir tout essayé.

    Voilà quand même le code.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MaForm.Left := Screen.Width - MaForm.Width;
    MaForm.Top := Screen.Height;
    Et si vous avez une meilleure solution pour gérer ceci, je suis preneur

    Merci !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 34
    Points : 32
    Points
    32
    Par défaut
    ca ne risque pas de marcher remplace par ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    form1.Left := Screen.DesktopWidth-form1.Width;
    form1.Top := Screen.DesktopHeight-form1.Height;

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    J'ai quand même testé avant de poster

    Mon code fonctionne parfaitement sur toutes les fiches exceptées la principale !

    Je viens de tester le tien, marche pas non plus.

    Merci quand même.

  4. #4
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    étonnant !
    à quel moment essayes-tu de positionner ta fiche ainsi ?
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Soit directement dans le DPR, soit dans le OnCreate, soit dans le OnShow...

    Autrement dit partout

    Est-ce que chez vous cela fonctionne sur une fiche princiaple de type fsStayOnTop ?

  6. #6
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    oui, j'ai ça pour une fenetre fsStayOnTop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TfrmVisu.DoRepositionne;
    begin
        Top := 0;                // place pour icones menu d'une fenetre maximisée
        Left := Screen.Width - Width - 50;
        BoundWindow(self);
    end;
    BoundWindow étant une proc qui assure que la fenetre est totalement visible, en prenant en compte le workspace (ie : écran moins barre des taches)

    doRepositionne est appelé dans le create, et depuis une fenetre utilitaire (sur click d'un bouton, pour la ramener dans l'écran apres un déplacement qui l'aurait masquée).
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Ok.

    J'ai quand même retenté mais...

    Rhalala me demande ce qui cloche !

    Je précise, au cas où ça servirait, que cette fiche (bien qu'elle soit la principale) n'est pas la première que l'on voit en lançant l'application.

    Voilà mon DPR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      Application.Initialize;
     
      Application.ShowMainForm := false;
      Application.CreateForm(TForm4, Form4);
     
      Application.CreateForm(TForm2, Form2);
     
      Application.CreateForm(TForm1, Form1);
      Form1.Show;
     
      //Application.CreateForm(TAboutBox, AboutBox);
     
      Application.Run;
    Je viens d'essayer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [...]
      Application.CreateForm(TForm4, Form4);
      Application.ShowMainForm := false;
    [...]
    Sans résultat.

  8. #8
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    Je seche !
    essayes de le prendre en debug, en rentrant en pas à pas dans la vcl à l'endroit où tu essayes le repositionnement.
    J'ai deja résolu des pbs bizarres comme ça.
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Rien à faire je ne trouve rien d'anormal.

    Je pense que c'est du au fait que cette fiche est la principale de l'application car pour les autres cela fonctionne très bien.

    : : :

  10. #10
    Membre habitué Avatar de gord's
    Inscrit en
    Avril 2003
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 115
    Points : 127
    Points
    127
    Par défaut
    je suis allé faire un tour rapide dans TControl, il y un test sur l'eventuel changement de taille, qui est appelé systématiquement même pour un simple resize. TControl.CheckNewSize.

    mets un point d'arret dedans, pour voir. Peut etre une interaction avec autoSize ?

    PS : je suis en D5
    La prochaine révolution informatique : les machines qui font ce qu'on veut, au lieu de faire ce qu'on leur demande...
    Grand Vizir du Grand Gourou - Trois-quart aile gauche du TRFC et intendant de 3ème mi-temps - Papy fait de la résistance

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Exécuté sans problème apparemment

    AutoSize est à false.

    Je crois avoir trouvé...

    Puisque cette fiche ne doit jamais être visible hormis pendant une alerte (comme dans MSN Messenger), j'avais mis sa propriété visible à false, et dans le DPR je falsais l'affichage de la fiche principale.

    Je viens de passer à true sa propriété visible et maintenant ça fonctionne

    Je comprends vraiment pas.

    Enfin, problème "résolu".

    Si quelqu'un a quand même une explication...

    Merci !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/09/2010, 12h51
  2. Désactiver un MenuItem de la fiche principale.
    Par aityahia dans le forum Windows Forms
    Réponses: 16
    Dernier message: 22/08/2008, 01h18
  3. Libérer une fiche principale
    Par ProgD dans le forum Delphi
    Réponses: 4
    Dernier message: 23/07/2007, 12h38
  4. Fiche principale <> Fiche identification
    Par yamino dans le forum Delphi
    Réponses: 11
    Dernier message: 10/06/2007, 18h30
  5. déplacer un composant à l'exécution
    Par sidahmed dans le forum Delphi
    Réponses: 4
    Dernier message: 14/01/2007, 21h34

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