Connaitre la taille de l'écran [Résolu]

cs_PHIL63 76 Messages postés dimanche 9 février 2003Date d'inscription 10 août 2010 Dernière intervention - 9 janv. 2007 à 09:24 - Dernière réponse : cs_PHIL63 76 Messages postés dimanche 9 février 2003Date d'inscription 10 août 2010 Dernière intervention
- 17 janv. 2007 à 11:46
Bonjour à tous,
J'ai une petite question :
Est-il possible de connaitre la taille de l'écran ( 15", 17" etc) et/ou son rapport 16/10 ou 4/3 avec des API de windows car je n'ai rien trouvé.
J'ai bien trouvé GetSystemMetrics qui me renvoi le nombre de pixels etc mais ce n'est pas cela que je cherche.

En fait, je galère car je développe sur un écran de résolution 1920x1200 et en 16/10 et dès que mes fenêtres sont affichées sur (par exemple) une résolution de 1024x768 en 4/3 et bien elles ne ressemblent plus tout à fait à ce que je voulais.
Si quelqu'un à une petite (ou une grosse) solution, je serais preneur.

Merci d'avoir eu la patience de lire ma question.

Philippe DROUET
Afficher la suite 

7 réponses

Répondre au sujet
cs_PHIL63 76 Messages postés dimanche 9 février 2003Date d'inscription 10 août 2010 Dernière intervention - 10 janv. 2007 à 10:42
+3
Utile
Bonjour,
Merci à tous pour vos réponses.
Mon problème en fait est que je développe sur un ordi dont les propriétés d'affichage sont réglées à 120 points par pouce ( sinon c'est écrit tout petit petit et je n'y vois rien :-) ) et qu'a l'éxécution les progs tourne sur des machines dont l'affichage est réglé sur 96 points par pouce. Donc quand je défini la taille de mes fenêtres etc sur mon ordi et qu'ensuite elles sont affichées sur les autres ordi ben c'est pas vraiment ça....
J'ai résolu mon problème via un composant LMD ( LMDForm.DesignPPI )  qui me permet de compenser cette différence du nombre de points par pouce.

Encore merci à tous pour vos différentes réponses.
Merci f0xi pour ton graphique qui me sera bien utile dans peu de temps.

Philippe DROUET
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_PHIL63
sylvunix 103 Messages postés mardi 11 avril 2006Date d'inscription 4 mars 2009 Dernière intervention - 9 janv. 2007 à 10:47
0
Utile
Bonjour PHIL63,

Tu peux récupérer respectivement dans Screen.Width et Screen.Height, la largeur et la hauteur de l'écran en pixels. Tu pourras ensuite facilement trouver ton ratio. Sans vouloir te casser le moral mais moi je suis en 5/4 !

Exemple :

if (Screen.Width/Screen.Height) = (16/10) Then MessageDlg('16/10',mtInformation,[mbOk],0);
if (Screen.Width/Screen.Height) = (5/4) Then MessageDlg('5/4',mtInformation,[mbOk],0);
if (Screen.Width/Screen.Height) = (4/3) Then MessageDlg('4/3',mtInformation,[mbOk],0);

Ensuite, je ne pense pas que la taille de l'écran soit importante pour toi (15", 17", ...), le ratio devrait être suffisant.

sylvunix
Commenter la réponse de sylvunix
Guillemouze 1015 Messages postés samedi 25 octobre 2003Date d'inscription 29 août 2013 Dernière intervention - 9 janv. 2007 à 13:29
0
Utile
pour moi, peu importe la resolution de l'ecran. l'important est qu'elles se redimensionnent correctement. En effet, si ton appli n'est pas executée en plein ecran, rien ne t'empeche de la redimensionner dans des proportions quelconques.
Il faut donc manier habilement les panel, anchors, align, constraints, ... afin d'arriver au resultat souhaité
Commenter la réponse de Guillemouze
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 9 janv. 2007 à 19:29
0
Utile
Screen.Width/Screen.Height

Form1.Monitor.Width/Form1.Monitor.Height

Screen.MonitorCount
Screen.Monitor[X].Width/Screen.Monitor[X].Height

Screen.Workaera : (Right-Left)/(Bottom-Top)

rc2 = 1.41
rc3 = 1.73

3/2 = 1.500
4/3 = 1.333
5/4 = 1.250
16/9 = 1.777
16/10 = 1.600
59/54 = 1.092

Commenter la réponse de f0xi
florenth 1105 Messages postés dimanche 1 août 2004Date d'inscription 17 août 2008 Dernière intervention - 9 janv. 2007 à 20:32
0
Utile
En parlant de ça, je voulais juste crier un "petit" coup: je trouve que le positionnement realtif des composants dans Delphi n'est pas des plus aisés.
Encore sous Turbo Delphi, j'ai accès à des propriétés comme AlignWithMargins: Boolean, Margins: TMargins et des composants spécialisés dans le positionnement très pratiques comme TCategorybuttons, TButtonGroup, TFlowPanel, TGridPanel. Ces composants apportent un gain notable comparé aux versions précédentes qui ne les possèdent pas.

Cependant, je trouve que c'est 10 fois plus simple de concevoir la même mise en page dans une page web (xhtml 1.1 + css 2.0) (à condition de pas trop être attentif aux détails sous IE ^^, toujurs un pixel de plus ou moins que sous FF), et ça me révolte. En plus, des fois, le design time foire un peu: tu changes Align et le composant change complètement de place (logique), mais il est parfois impossible de le remettre comme avant sans devoir re-changer tous les Align de tous les composants du même parent.

Voila, c'était le coup de geule de la journée.
D'ailleurs, j'avais commencé un composant qui permettrait de positionner les composants comme en html, mais c'est bien trop complexe, je me noie dans le code....
Commenter la réponse de florenth
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 11 janv. 2007 à 03:00
0
Utile
le PPI tu le recuper dans Screen.PixelPerInch ...

par contre ... pourquoi ton ecran est il réglée en 120 PPI ???! tu bosse dans l'imprimerie ?

le mieux, pour le developpement est toujours d'avoir une machine hyper-standard pour eviter ce genre de probleme.
c'est comme l'histoire des resolutions pour les site web, malgrés une generalitée de config en 1024x768 on trouve encore des normalisation 640x480 et parfois pire 1600x1200 !

sinon pour le graph, je tiens a préciser qu'il n'est pas de moi, mais dispo sur wikipedia. (http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Vector_Video_Standards.png/750px-Vector_Video_Standards.png)

Commenter la réponse de f0xi
cs_PHIL63 76 Messages postés dimanche 9 février 2003Date d'inscription 10 août 2010 Dernière intervention - 17 janv. 2007 à 11:46
0
Utile
Bonjour,

Merci f0xi pour l'info sur Screen.PixelPerInch.
pourquoi mon écran est réglé sur 120 PPI ... ben c'est un 17" et en 1920x1200 c'est écrit trop petit pour mes vieux yeux :-)

Philippe DROUET
Commenter la réponse de cs_PHIL63

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.