Redimensionner un composant du haut vers le bas

[Résolu]
Signaler
Messages postés
18
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2006
-
Messages postés
18
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2006
-
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

Messages postés
18
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2006

J'ai trouvé, c'est fou ce qu'on peut faire avec le composant TGraphicGauge.
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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)
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Tu pourrais faire :

Image.Align := alBottom
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
J'ai encore un post de retard, mdr
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
decidement japee ... t'es fatigué non ?

<hr size="2" width="100%" />Croc (click me)
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
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é !
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
44
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" />
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
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
Messages postés
18
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2006

@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.
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
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...
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
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)
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
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)
Messages postés
18
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
20 octobre 2006

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.