cs_younesken1
Messages postés39Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention23 mars 2011
-
11 mars 2006 à 10:51
cs_younesken1
Messages postés39Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention23 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.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 11 mars 2006 à 11:14
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);
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 11 mars 2006 à 12:16
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!!
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 11 mars 2006 à 12:24
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.
cs_younesken1
Messages postés39Date d'inscriptionjeudi 19 mai 2005StatutMembreDernière intervention23 mars 2011 11 mars 2006 à 13:21
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.