19/04/2024
Windev et les Api Windows
Nb de visiteurs en ligne : 1
>> Introduction <<
>> Codes et Forum <<
>> Download <<
Rubrique
: 5 - Trucs et astuces
Sujet
: Déplacer rapidement une image
Auteur
Message
°¨¨ JL ¨¨°
Posté le : 23/06/2000 12:00:00
// °¨¨¨JL¨¨¨°
// Pour déplacer une image on peut modifier les propriétés ..colonne et ..ligne mais le résultat n'est pas très satisfaisant au niveau de la vitesse d'exécution et cela entraine des effets disgracieux au niveau de l'affichage.
// Pour supprimer ces problèmes, on peut utiliser l'api MoveWindow. Dans l'exemple suivant, je veux animer 'image3' dans les limites du champ 'image1'...
// Appel de la procédure (exécutée jusqu'à la fermeture de la fenêtre) :
moveimage("image1","image3")
// La Procédure :
Procédure moveimage(champimage,image)
col , lig sont des entiers
x , x1 , y , y1 sont des entiers
x = {champimage}..colonne
x1= {champimage}..colonne+{champimage}..largeur-{image}..largeur
y = {champimage}..ligne
y1= {champimage}..ligne+{champimage}..hauteur-{image}..hauteur
sensc , sensl est des booleens
pv est un entier=2 // pas vertical du déplacement
ph est un entier=1 // pas horizontal
col={image}..colonne
lig={image}..ligne
{image}..colonne=1500
boucle
si col > x1 alors
sensc=1
fin
si col < x alors
sensc=0
fin
si lig > y1 alors
sensl=1
fin
si lig < y alors
sensl=0
fin
si sensc alors
col-=ph
sinon
col+=ph
fin
si sensl alors
lig-=pv
sinon
lig+=pv
fin
appeldll32("user32","MoveWindow",handle(image),col,lig,{image}..largeur,{image}..hauteur,1)
appeldll32("user32","UpdateWindow",handle())
si appeldll32("user32","GetInputState") alors
multitache(-1)
fin
fin