KERNADEC mon sauveur

Tu es revenu...j'ai grand besoin de toi .
En fait, j'ai noir de choses a te demander, je ne sais pas si tu peux accomplir ce miracle, mais je suis désespéré, car je m'egosille a expliquer en anglais, je fais noir de dessins et personne y comprend KCC

Et on s'y est meme mis a deux avec mon chef, qui y connait pas mal en math pour essayer de creer la fleche "parfaite"
Alors tout d'abord et avant toute chose, une premiere question sur ton premier code:
Pourquoi tu met deux images,
Code : Tout sélectionner
CreateImage(#Image_0, Largeur,Hauteur)
CreateImage(#Image_1, Largeur,Hauteur)
Et ça
Parce que je torture ton super code dans tous les sens depuis 3 jours, et je n'ai toujours pas compris pourquoi il est necessaire de mettre deux images, ne pourrait on pas le faire avec une seule, ou bien c'est pour une histoire de rafraichissement ????
Et c'est important de comprendre....j'essaie de ne pas copier/coller betement

Sauf evidemment dans certains codes...qui paraissent etre ecrit en hebreux
Et la seconde question :
Alors, j'ai essayé de demander chez les français qui parlent pas francais, si y pouvaient m'aider a creer une fleche comme je la reve.
J'ai eu deux codes, mais ils n'ont pas compris, et pourtant, comme quand j'avais 4 ans, je leur ai fait plein de dessins.
RASHAD m'a donné un code qui pourrait me depanner, et c'est deja bien gentil de sa part, mais ce n'est pas ce que je cherchais a faire comme effet.
Ce code qui d'ailleur a un petit probleme de selection des 4 fleches, mais si on change a la main le flag (1,2,3,4) ça marche
Donc ce code donne bien les 4 fleches....mais pas en partant d'une seule image, il a fait 4 image differentes.
Et en plus, pour les deplacement vertical + haut par exemple, RASHAD a simplifié le code en modifiant le gadget, et donc la pointe de la fleche ne suis plus la souris, c'est le "cul" de la fleche qui se retrecie (Si tu vois ce que je veux dire), donc c'est deja une solution, mais ça fait bizarre.
Car deux des dessins fonctionnent comme je le veux et deux autres a l'envers
Code : Tout sélectionner
Enumeration
#Fenetre
#Image_0
#Image_1
#FondBlanc
#ImageGadget
EndEnumeration
Hauteur.i = 200
Largeur.i = 400
CreateImage(#Image_0, Largeur,Hauteur)
CreateImage(#Image_1, Largeur,Hauteur)
Global flag
flag = 1
Procedure DessineFleche(x, y)
If x > 400
x = 400
ElseIf x < 35
x = 35
EndIf
If y > 200
y = 200
ElseIf y < 35
y = 35
EndIf
StartDrawing(ImageOutput(#Image_1))
DrawImage(ImageID(#Image_0), 0, 0)
If flag = 1
LineXY(10, 10, x - 10, 10, RGB(226, 23, 29))
LineXY(x - 10, 10, x - 10, y - 10, RGB(226, 23, 29)) ; Verticale
LineXY(x - 10, y - 10, x - 15, y - 20, RGB(226, 23, 29))
LineXY(x - 10, y - 10, x - 5, y - 20, RGB(226, 23, 29))
ElseIf flag = 2
LineXY(10, y - 10, x - 10, y - 10, RGB(226, 23, 29))
LineXY(x-10, 10,x-10, y - 10, RGB(226, 23, 29)) ; Verticale
LineXY(x - 10, 10, x - 15, 20, RGB(226, 23, 29))
LineXY(x - 10, 10, x - 5, 20, RGB(226, 23, 29))
ElseIf flag = 3
LineXY(10,10, x - 10, 10, RGB(226, 23, 29))
LineXY(10, 10, 10, y - 10, RGB(226, 23, 29)) ; Verticale
LineXY(10, y - 10, 15, y - 20, RGB(226, 23, 29))
LineXY(10, y - 10, 5, y - 20, RGB(226, 23, 29))
ElseIf flag = 4
LineXY(10, y-10, x - 10, y-10, RGB(226, 23, 29))
LineXY(10, 10, 10, y - 10, RGB(226, 23, 29)) ; Verticale
LineXY(10, 10, 15, 20, RGB(226, 23, 29))
LineXY(10, 10, 5, 20, RGB(226, 23, 29))
EndIf
StopDrawing()
ResizeImage(#Image_1, x, y)
ResizeImage(#Image_0, x, y)
SetGadgetState(#ImageGadget,ImageID(#Image_1))
EndProcedure
OpenWindow(#Fenetre, 417, 181, 600, 500, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ImageGadget(#ImageGadget, 100, 100, 0, 0, ImageID(#Image_1))
StartDrawing(ImageOutput(#Image_0))
Box(0,0,400,200, RGB(255, 255, 255))
StopDrawing()
DessineFleche(Largeur, Hauteur)
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #WM_MOUSEMOVE
MouseX = WindowMouseX(#Fenetre)
MouseY = WindowMouseY(#Fenetre)
If GetAsyncKeyState_(#VK_LBUTTON) And MouseX > GadgetX(#ImageGadget) And MouseY > GadgetY(#ImageGadget)
DessineFleche(mousex - GadgetX(#ImageGadget), mousey - GadgetY(#ImageGadget))
EndIf
Case #WM_KEYDOWN
If GetAsyncKeyState_(49) & $8000 = 32768
flag = 1
ElseIf GetAsyncKeyState_(50) & $8000 = 32768
flag = 2
ElseIf GetAsyncKeyState_(51) & $8000 = 32768
flag = 3
ElseIf GetAsyncKeyState_(52) & $8000 = 32768
flag = 4
EndIf
ResizeImage(#Image_1,Largeur, Hauteur)
ResizeImage(#Image_0,Largeur, Hauteur)
DessineFleche(Largeur, Hauteur)
EndSelect
Until Evenement = #PB_Event_CloseWindow
Mais bon comme d'habitude, ce que je cherche a faire est super dur....bien au dessus de mes moyens de programmeur, de mathematicien et de graphiste car il faut ces 3 qualités pour reussir cette put....de fleche (Excuse moi, apres 50 heures a travailler dessus .....j'suis un peu sur les crocs

)
Donc ce que "j'aimerais" avoir est tres simple....en explication (En français...pas en anglais

), mais tres dur en code, apparement.
Deja merci de ta fleche retournée, car elle peut etre aussi une des reponses
Premiere supplication 
Ce que je voudrais, c'est cette fleche que tu viens de me faire...et celle que tu m'avais faite avant, soient ensemble dans le meme gadget.
C'est à dire, je part d'un point central, et que j'aille dans toutes les directions la pointe de la fleche suit la souris, exactement comme elle suit la souris sur ton dernier code, mais dans toutes les directions, haut , bas, droite gauche
Voici un dessin dans les deux langues car c'est pas facile de traduire chaque post

:

Ca c'est pour le deplacement
Seconde supplication 
Maintenant la seconde difficultée, c'est que j'aimerais que les fleches n'aient pas de limites, c'est à dire que le ImageGadget se resize au fur et a mesure que tu approche du bord.
Car actuellement ta superbe fleche bleue on voit pas le bout si on va trop loin, et le bout disparait carrement si on continue
Troisieme et derniere supplication 
J'aimerais, si c'est possible, que les grandes parties de blanc disparaissent quand tu resize la fleche, ou au pire a la fin du resize si c'est trop dur a le faire en meme temps.
Exemple sur ton ancien code on pouvait faire partir la fleche en bas a droite, et c'etait deja magique, mais tout le blanc qui est a gauche va me gener pour poser les autres gadgets, car FRED a dit de ne pas les faire chevaucher, PB n'est pas prevu pour ça
Donc ce qui serait le top, c'est que au final quand on a deplacé la pointe de la fleche on se retrouve avec une de ces fleches, en partant toujours du meme point central
Exemple avec des fleches rouges (Je pense que tu comprendra quand meme

)
Voici un code de rashad qui fait exactement ce que je veux, mais seulement dans une seule direction

Le gadgetimage se resize pil poil sur la fleche, mais quand tu passe dans l'autre sens, et ben ça s'arrette
Code : Tout sélectionner
Enumeration
#Fenetre
#Image_0
#Image_1
#FondBlanc
#ImageGadget
EndEnumeration
hdc.l=0
Hauteur = 200
Largeur = 400
CreateImage(#Image_0, Largeur,Hauteur)
CreateImage(#Image_1, Largeur,Hauteur)
Procedure DessineFleche(x, y)
StartDrawing(ImageOutput(#Image_1))
DrawImage(ImageID(#Image_0), 0, 0)
LineXY(0, 10, x - 10, 10, RGB(226, 23, 29)) ; Horizontale
LineXY(x - 10, 10, x - 10, y - 10, RGB(226, 23, 29)) ; Verticale
LineXY(x - 10, y - 10, x - 15, y - 20, RGB(226, 23, 29))
LineXY(x - 10, y - 10, x - 5, y - 20, RGB(226, 23, 29))
StopDrawing()
ResizeImage(#Image_1, x, y)
ResizeImage(#Image_0, x, y)
SetGadgetState(#ImageGadget,ImageID(#Image_1))
EndProcedure
OpenWindow(#Fenetre, 417, 181, 600, 500, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ImageGadget(#ImageGadget, 100, 100, 0, 0, ImageID(#Image_1))
StartDrawing(ImageOutput(#Image_0))
FillArea(0,0,RGB(255,255,255),RGB(255,255,255))
StopDrawing()
DessineFleche(Largeur, Hauteur)
Repeat
Evenement = WaitWindowEvent()
Select Evenement
Case #WM_MOUSEMOVE
MouseX = WindowMouseX(#Fenetre)
MouseY = WindowMouseY(#Fenetre)
If GetAsyncKeyState_(#VK_LBUTTON) And MouseX > GadgetX(#ImageGadget) And MouseY > GadgetY(#ImageGadget)
DessineFleche(mousex - GadgetX(#ImageGadget), mousey - GadgetY(#ImageGadget))
EndIf
EndSelect
Until Evenement = #PB_Event_CloseWindow
Voila tout mon malheur depuis trois jours de codage.
J'ai un sceau de codes, d'abord tous les miens qui marchent pas.
Et aussi ceux des copains qui ont bien voulu essayer de m'aider, et que je remercie encore
J'espere que j'ai fait assez de dessin, car c'est pas facile d'expliquer ce genre de chose.
Si tu as un doute..n'hesite pas, c'est mieux de demander, plutot que de se casser la nenette a faire un code, et que ce ne soit pas l'effet voulu
J'suis dégouté, car normalement ce devrait etre dans les derniers codes, pour terminer mon organigramme, et comme dab j'arrive pas a terminer.
Ce qui fait une apli de plus non terminée a mon actif
En tout cas mille merci de t'inquieter de mon sort
