Redimensionner un composant du haut vers le bas

Résolu
cs_mecsympa Messages postés 18 Date d'inscription samedi 8 mars 2003 Statut Membre Dernière intervention 20 octobre 2006 - 15 oct. 2006 à 20:19
cs_mecsympa Messages postés 18 Date d'inscription samedi 8 mars 2003 Statut Membre Dernière intervention 20 octobre 2006 - 20 oct. 2006 à 16:18
Pour un programme, j'ai besoin de redimensionner une image. Mais si j'utilise height (ou width) l'image se reduit du bas vers le haut. Je voudrais faire le contraire qu'elle se réduise du haut vers le bas comme si on redimensionnais le composant à la souris.
C'est pour faire un vu-mètre qui affiche le niveau de la musique du bas vers le haut. Ce sera peut être plus explicite dit comme cela.
J'ai réussi en utilisant un shape qui cache l'image. Mais, le résultat est moyen.

13 réponses

cs_mecsympa Messages postés 18 Date d'inscription samedi 8 mars 2003 Statut Membre Dernière intervention 20 octobre 2006
20 oct. 2006 à 16:18
J'ai trouvé, c'est fou ce qu'on peut faire avec le composant TGraphicGauge.
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 oct. 2006 à 22:28
houla ... au vus de ce que tu dis, je me permet de te dire que toute ta technique de vus metre n'est pas au point.

regarde du coté de PaintBox, CopyRect, Draw ect... d'ailleur y'a pas mal de source ici qui montre l'exemple de comment dessiner en delphi.

ensuite je peu te dire, TImage c'est le contenant, en aucuns cas il ne devrait bouger, etre redimensionner pour cette utilisation.

si j'ai le temps je posterais mon mini-player base FMod, tu veras comment les vu-metres sont géré.
par contre comme c'etait un test le code doit etre degeu.

ah non pas tant que ça :

voici la fonction qui anim les vum :

var
  BMPVULEVEL : TBitmap;

procedure AnimVULevel(const LvL,LvR : integer);
var YL,YR : integer;
const
  VUL : TRect = (left:  6; top: 3; Right:12; bottom: 75);
  VUR : TRect = (left: 12; top: 3; Right:18; bottom: 75);
  VNO : TRect = (left:  0; top: 0; Right: 6; bottom: 72);
  VLG : TRect = (left:  6; top: 0; Right:12; bottom: 72);
  VPR = 72/100;
begin
  with form1.image1.Picture.Bitmap.Canvas do begin
       CopyRect(VUL, BMPVULEVEL.Canvas, VNO);
       CopyRect(VUR, BMPVULEVEL.Canvas, VNO);
       YL := max(72-round( VPR * LvL ),3);
       YR := max(72-round( VPR * LvR ),3);
       CopyRect(Rect(VUL.Left,YL,VUL.Right,VUL.Bottom),
                BMPVULEVEL.Canvas,
                Rect(VLG.Left,YL,VLG.Right,VLG.Bottom));
       CopyRect(Rect(VUR.Left,YR,VUR.Right,VUR.Bottom),
                BMPVULEVEL.Canvas,
                Rect(VLG.Left,YR,VLG.Right,VLG.Bottom));
  end;
end;

et a la creation de la fiche faut appeler AnimVuLevel(0,0);

bon par contre il te faudrat adapter le truc avec tes images.
   vulevel.bmp (a gauche vum eteint, a droite vum allumé)
  vuground.bmp (permet de placer deux vum L&R)
 
on charge vuground.bmp dans image1 et ensuite on crée dynamiquement BMPVULEVEL et on charge vulevel.bmp dedans.
rapide, simple, efficace.
voila les miennes.

<hr size="2" width="100%" />Croc (click me)
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
15 oct. 2006 à 22:33
Tu pourrais faire :

Image.Align := alBottom
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
15 oct. 2006 à 22:33
J'ai encore un post de retard, mdr
0

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

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 oct. 2006 à 22:51
decidement japee ... t'es fatigué non ?

<hr size="2" width="100%" />Croc (click me)
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
15 oct. 2006 à 23:27
Salut F0xi,


Quoi, fatigué, moi ?


En fait, j'ai souvent deux navigateurs ouverts, Firefox et Mozilla.
Explication : je n'arrive pas à poster avec Firefox, Codes-Sources fait
visiblement une allergie à ce navigateur.

Moi je continue à l'utiliser, par principe, car je suis un peu têtu...


Alors parfois, le temps que j'ouvre Mozilla... le débat a quelque peu avancé !
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
16 oct. 2006 à 11:56
Salut,

@japee :
moi j'utilise FireFox et tout fonctionne (la notation, les postes, les MP ...)

le seul truc c'est quand je clique dans la zone de texte le curseur clignotant n'apparait pas de suite
seulement après le premier caractère tappé !

 
@+
Cirec

<hr size="2" />
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
16 oct. 2006 à 16:46
exact, Cirec... merci du tuyau* !

Néanmoins, les versions précédentes du site étaient plus compatibles avec Firefox.
Certains effets (comme l'ombrage sous les avatars) n'apparaissant que sous IE...
Mais moi, si on me prive de mes onglets, je suis perdu.
Et puis je suis contre toute hégémonie, qui débouche fatalement à terme sur le "choix imposé".
Il y a de la place pour tout le monde, que diable !

* posté avec Firefox, celui là, donc
0
cs_mecsympa Messages postés 18 Date d'inscription samedi 8 mars 2003 Statut Membre Dernière intervention 20 octobre 2006
17 oct. 2006 à 10:38
@f0xi
Qu'est ce que la fonction max (enfin je crois que c'est une fonction). Je ne peut tester ton code si je ne sais pas à quoi cela correspond.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
17 oct. 2006 à 14:55
Max compare 2 valeurs numériques et retourne la plus élevée des 2.
Pour pouvoir l'utiliser, il faut ajouter Math dans les uses.
Sinon, quand tu connais pas un truc, par exemple "Max", tu mets en surbrillance dans l'éditeur d'objets, et tu appuies sur F1, en général, le résultat vaut vraiment le déplacement, lol...
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
18 oct. 2006 à 03:37
oui japee, l'aide delphi est trés complete et surtout plus rapide que n'importe quel forum ou moteur de recherche.

dans l'aide delphi on trouve toujours :

l'unité de la fonction ou classe
hierarchie d'heritage pour les composants
explications et exemples

on vas dire qu'a 80% on trouve tout ce qu'il faut dedans.

<hr size="2" width="100%" />Croc (click me)
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
18 oct. 2006 à 03:41
ah par contre, comme c'est tiré d'un autre programme, les valeurs de volume vont de 0 a 100 il faudrat donc adapter si l'interval de ton player est different.

exemples :

VPR = 72/100; (volume de 0..100 FMOD)
VPR = 72/255; (volume de 0..255 BASS)
VPR = 72/128; (volume de 0..128 TMIDI)
VPR = 72/65535; (volume de 0..65535 API SFL)

<hr size="2" width="100%" />Croc (click me)
0
cs_mecsympa Messages postés 18 Date d'inscription samedi 8 mars 2003 Statut Membre Dernière intervention 20 octobre 2006
18 oct. 2006 à 17:21
Pour max, il était de couleur standard, j'avais pas fait attention. J'avoue ne pas être un pro de la programmation.

http://freelog.chez.tiscali.fr/emoticon/Colere/Colere_33.gif Aaaaaaaaaaaaaaaaah, ça ne fonctionne pas. Mais merci quand même pour votre aide.
0
Rejoignez-nous