Connaitre la taille de l'écran

Résolu
cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010 - 9 janv. 2007 à 09:24
cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010 - 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
A voir également:

7 réponses

cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010
10 janv. 2007 à 10:42
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
3
sylvunix Messages postés 93 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 4 mars 2009
9 janv. 2007 à 10:47
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
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
9 janv. 2007 à 13:29
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é
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
9 janv. 2007 à 19:29
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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 3
9 janv. 2007 à 20:32
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....
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
11 janv. 2007 à 03:00
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)

0
cs_PHIL63 Messages postés 76 Date d'inscription dimanche 9 février 2003 Statut Membre Dernière intervention 10 août 2010
17 janv. 2007 à 11:46
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
0
Rejoignez-nous