Résoltion [Résolu]

Messages postés
39
Date d'inscription
jeudi 19 mai 2005
Dernière intervention
23 mars 2011
- 11 mars 2006 à 10:51 - Dernière réponse :
Messages postés
39
Date d'inscription
jeudi 19 mai 2005
Dernière intervention
23 mars 2011
- 11 mars 2006 à 13:21
j'ai développez mon application ds le mode 1152x864,
et, elle est trés charger en composant visuelle.
le problème et que dés que je passe à une autre résolution plus basse (800x600), alors l'interface n'est plus vraiment utilisabe.
y'a t'il pas moyen de redimmenssioner les composant visuel automatiquement selon la résolution.merci beaucoup.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 11 mars 2006 à 11:14
3
Merci
Salut,

Extrait de l'aide de Delphi :

procedure ChangeScale(M, D: Integer); override;


Description


La méthode ChangeScale permet de changer l'échelle d'une fiche et de tous ses contrôles pour une résolution d'écran ou une taille de fonte différente. Comme ChangeScale modifie les propriétés Top, Left, Width et Height du contrôle, elle change sa position et sa taille ainsi que celles de ses enfants.


Les paramètres M et D définissent une fraction servant à changer l'échelle du contrôle. Le paramètre M est le multiplicateur et D le diviseur. Par exemple, pour réduire un contrôle à 75% de sa taille initiale, spécifiez les valeurs 75 pour M et 100 pour D (75/100). Le même résultat est obtenu en spécifiant la valeur 3 pour M et 4 pour D (3/4). Les deux fractions sont égales et le contrôle est réduit du même pourcentage, 75%.


Pour agrandir le contrôle à 33% de plus que sa taille initiale, spécifiez les valeurs 133 pour M et 100 pour D (133/100). Le même résultat est obtenu en spécifiant les valeurs 4 pour M et 3 pour D (4/3).


Remarque : Comme la taille des contrôles et leurs coordonnées sont des valeurs entières, la mise à l'échelle en utilisant le ratio M/D entraîne un certain niveau d'erreur d'arrondi. L'appel répété de ChangeScale peut provoquer à un certain moment la disparition du contrôle (si les erreurs d'arrondi rendent le contrôle trop petit), ou faire sortir le contrôle de la fiche (si les erreurs d'arrondi déplacent le contrôle). Si vous mettez fréquemment un contrôle à l'échelle, envisagez de détruire et de recharger la fiche au bout de quelques mises à l'échelle, afin que les coordonnées soient remises à l'échelle en évitant l'accumulation des arrondis.

Donc pour reduire les composants de 25% il faut écrire :
ChangeScale(75, 100);

@+
Cirec

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Cirec
Meilleure réponse
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 11 mars 2006 à 11:20
3
Merci
salut,

on peut toujours redimensionner les composants avec les porpriétés width et heigth mais c'est trés lourd

si tu as indicé tes composants tu peux faire des boucles en utilisant findcomponent

par exemple pour un label

for i:= 0 to XXX do

with TLabel(FindComponent('Label' + IntToStr(i))) do // on recherche les éléments à afficher

begin

width: =(width*nouveau) div ancien;

height:=(height*nouveau) div ancien;

end;



Mais de toutes façon cela restera lourd



@+

jlen

Merci jlen100 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 11 mars 2006 à 11:42
0
Merci
excuse moi cirec je n'avais pas rafraichi.(aujourd'hui c'est moi!!)

mais j'ai au moins appris une chose aujourd'hui



@+

jlen
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 11 mars 2006 à 11:57
0
Merci
Content d'avoir su t'éclairer, j'en déduis donc que tu ne connais pas les deux autres procédures :
Il existe aussi ScaleBy et ScaleControls

ScaleBy est identique a ChangeScale
et
ScaleControls : Comme son nom l'indique il n'agit que sur les contrôles enfants

Voilà c'est tout

@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 11 mars 2006 à 12:16
0
Merci
si je connais ---> enfin il y a 1/4 d'heure car j'ai été voir dans
l'aide les méthodes de Tcontrol encore que pour changescale l'aide de
D7 est moins complète!!



@+

jlen
Commenter la réponse de jlen100
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 11 mars 2006 à 12:24
0
Merci
Sous TControl les deux ont la même définition mais sous TCustomForm c'est un peut différent :

Repositionne et redimensionne la fiche par le ratio M/D et ajuste, si nécessaire, sa zone client et la taille de fonte.


procedure ChangeScale(M, D: Integer); override;


Description


La méthode ScaleBy appelle ChangeScale pour effectuer le changement d'échelle. TCustomForml surcharge ChangeScale pour remettre à l'échelle les contrôlesenfant et les barres de défilement avant de se remettre lui-même à l'échelle.

@+
Cirec
Commenter la réponse de Cirec
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 11 mars 2006 à 12:32
0
Merci
oui sous Tcontrol c'est la méthode native alors qu'elle est surchargée sous TcustomForm



@+

jlen
Commenter la réponse de jlen100
Messages postés
39
Date d'inscription
jeudi 19 mai 2005
Dernière intervention
23 mars 2011
- 11 mars 2006 à 13:21
0
Merci
merci beaucoup Cirec.et a toi aussi jLen car méme si elle est lourde la procédure que tu ma proposé, mais j'ai commeme appris l'interet d'utilisation de nouveaux fonctions.
Commenter la réponse de cs_younesken1

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.