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 :

[Multi screen] Comment spécifier l'écran par défaut [FAQ]


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut [Multi screen] Comment spécifier l'écran par défaut
    Bonjour,
    Un client m'a demander de gérer le mutliscreen, et aimerait que le logiciel s'ouvre sur son second écran lorsque celui-ci est connecté à son portable. Si il ne l'est pas, le logiciel s'exécute sur le premier écran.

    J'ai un peu regardé et rien de bien concluant. Quelqu'un à déja travaillé sur ca je suppose ?

    Merci d'avance.

  2. #2
    Membre habitué Avatar de Guile
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 130
    Points : 144
    Points
    144
    Par défaut
    Il me semble avoir fait quelque chose qui ressemblait à ça :

    Dans le OnCreate de ta page principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if Screen.MonitorCount = 1 then
      Left:= 0
    else begin
      if Screen.Monitors[0].Primary then iEcranPrincipal:= 0
      else if Screen.Monitors[1].Primary then iEcranPrincipal:= 1;
      left:= Screen.Monitors[iEcranPrincipal].Width;
    end;
    iEcranPrincipal : une variable integer


  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    En effet, un peu mal foutu mais bon.
    Mal foutu dans le sens où l'on ne peut plus faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     MaFenetre.Left := 10;
    Ceci deviendra

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     MaFenetre.Left := Screen.Monitors[x].WorkareaRect.Left+10;
    Mais bon, on fait avec.

    Merci pour tout.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    En plus WorkAreaRect.Left du moniteur principal commence est 0 et peut importe que se soit le premier ou second moniteur.

    Exemple, on a deux écrans.

    Ecran 1 et Ecran 2.
    Ecran 2 est moniteur principal

    Une fiche qui est alignée sur le bord gauche de l'écran 2 à sa propriété Left à 0. Si elle est alignée sur le bord gauche de l'écran 1, sa propriété Left = 0-Screen.Monitors[x].width. Donc, valeur négative....

    faut encore le savoir ca.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 30/09/2010, 17h33
  2. Réponses: 4
    Dernier message: 04/10/2005, 00h07
  3. Comment changer l'icone par défaut ?
    Par Mariussy dans le forum EDI
    Réponses: 3
    Dernier message: 19/09/2005, 20h23
  4. Réponses: 9
    Dernier message: 13/06/2005, 17h56
  5. Réponses: 2
    Dernier message: 06/07/2004, 17h46

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