FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect

Aller en bas 
5 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 18:30

Je ne sais pas ce qui cloche mais j'ai droit à çà ( je suis sous W7):
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Captur25

J'aurai peut être une piste

Par
Code:
res% = dll_call1("ClickClearHook",handle(hnd%))
je stoppe la surveillance du form 0 mais pas celle des rectangles
ce qui fait que la fonction renvoi dans quelque chose qui n'existe plus...

Il faudrait peut être

stopper la fonction sur les rectangles
stopper la fonction sur le container
Fermer la dll
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 18:40

Essaie comme ceci:
Code:
res% = dll_call1("ClickClearHook",0)
A ce moment, dans la routine ON_CLOSE de la form 0, il faut annuler tous les hooks déclarés. Cela est fait en passant la valeur 0 comme paramètre, et non pas le handle de la form 0.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 20:39

Essayé mais pas adopté ! Laughing

Même punition mais le plus rigolo c'est que contrairement aux autres messages,
celui ci ne provoque pas le blocage de la fonction "exécuter" de l' éditeur.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 21:04

Réflexion faite, je crois que je t'ai induit en erreur !

Il faut en effet faire un ClickClearHook pour tous les objets pour lesquels un a fait un ClickSetHook !

Et dans ton cas, c'est bien la form 0.

Donc, ta routine on_close de la form 0 devrait etre ceci:
Code:
Close:
  hnd%=handle(0)
  res% = dll_call1("ClickClearHook",hnd%)
  Dll_off
return

ou plus simplement:
Code:
Close:
  res% = dll_call1("ClickClearHook",handle(0))
  Dll_off
return

Je ne me rappelle plus si c'est ce que tu avais au début, mais c'est le code qui devrait marcher. Tu fais 4 ClickSetHook, tous les 4 pour la form 0, et donc seule la form 0 est concernée. Inutile (et dangereux !) de faire le ClickClearHook 4 fois...

EDIT

Tui pourrais éventuellement ajouter un WAIT 200 juste avant le DLL_OFF.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 21:15

Même tarif, même punition...
J'ai même poussé le wait à 1000 et toujours ce foutu message
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 21:20

En fait il n' y a qu'un ClickSetHook et 4 ClickSetLinkRect ....
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMar 9 Avr 2013 - 21:41

Exact. Mais les ClickSetLink sont inoffensifs. ce qui compte, c'est d'annuler l'effet de ClickSetHook.

EDIT

D'ailleurs, vérification faite, un appel multiple à ClickClearHook avec le même handle d'objet ne produit pas de problème. Cela a été sécurisé à l'intérieur de la DLL: dès le deuxième appel, la fonction retourne immédiatement et ne fait plus rien. Mais il est essentiel de le faire une fois, avant de fermer le programme.

D'ailleurs, pour info: ClickClearHook élimine aussi tous les ClickSetLink, mais pas les ClickSetRect ! Les rectangles restent définis, mais cela est sans influence sur l'exécution ultérieur (ou l'arrêt) du programme.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 9:31

Le mystère du message reste donc entier... Laughing

Avis à ceux qui aurait une idée sur la question... Laughing
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 10:47

Alors la, si même Klaus sèche sur ce sujet, ce n'est pas gagné ... bon courage ...
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 12:42

En voilà une bien drôle !!!

J'ai pris le risque du plantage monumentale, j'ai mis "on_close 0,close" en rem et j'ai cliqué sur la croix.

SURPRISE !!! la fenêtre se ferme sans aucun message.
Par curiosité masochiste, j'ai ouvert le gestionnaire de tâches à la recherche d'un processus résiduel.
RE SURPRISE !!!! rien, même pas un "panoramic.exe"...

CQFD , Apparemment W7 ferme tout par la croix.
Autrement dit le "On_close 0,close" fait doublon si il inclut des fermetures ou destructions... Suspect
Il ne servirait que pour ne pas oublier de sauvegarder des changements.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 13:32

et pour les timer quand il y en a. W7 n'aime pas quand on laisse tourner un timer en quittant (affichage d'un message d'erreur)
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 14:54

Je pense que c'est dû au fait qu'un timer peut être une execution en cours en même temps que la fermeture
alors que pour la detection sur le form 0, elle est ponctuel et pas en cours losque la souris est sur la croix.

Mais, je dis peut être encore une bêtise... Laughing
Revenir en haut Aller en bas
pascal10000

pascal10000


Nombre de messages : 812
Localisation : Troyes
Date d'inscription : 05/02/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 21:48

ygeronimi

tu vas nous faire le logiciel du ciecle lol! lol! lol! lol! lol! lol!
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: re   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyMer 10 Avr 2013 - 23:05

HOUUUULALALALA.....

J'en suis loin, très loin même jjn4 sur sa planète en est plus près que moi.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 16:48

Klaus, je dois faire mal quelque chose, mais je ne trouve pas ...
Si tu peux m'expliquer mon erreur ...

En fait je voudrais afficher un zoom quand je suis sur le sprite a terme. Là pour mon test, j'ai juste voulu afficher la position de la souris si on est dans la zone du sprite, mais je patauge ...


Code:
REM -------------------------------------------------------------
REM ---                                                      ---
REM ---            Sprites tool en Panoramic v1.0            ---
REM ---                                                      ---
REM -------------------------------------------------------------
REM
REM Permet de:
REM      - Remplacer les couleurs 0;0;0 des images par des 0;0;1
REM      - Remplacer une couleur de fond par des 0;0;0
REM      - Ajuster et déplacer un sprite en hauteur ou largeur
REM

LABEL Charger,Quitter,Sauver,Couleur,aff_palette,aff_loupe
LABEL AfficherZoom
' ,Pipette,Remplace,Selectionne_couleur,Echange
' LABEL CopieCouleurARemplacer,CopieCouleurDeRemplacement
' LABEL R_NOIR,R_ROSE,R2_FAUXNOIR,R2_NOIR

DIM D$ : D$ = "C:\Panoramic-Init\sources\Barbarian-jc\"
DIM Ligne,Col,C1%,C2%,C3%,S1$,S2$,S3$,Modif%
DIM Charger%,Sauver%
DIM wco%, hco%, wct%, hct%, ech%, ecv%, ra%, ga%, ba%, i%, j%, x%, y%
DIM affich_palette%,affich_zoom%
DIM Menu%,no%,no2%,bpalette%,bzoom%,res%,hnd_button%

DLL_ON D$+"KGF.dll"
HEIGHT 0,300:WIDTH 0,400:LEFT 0,(screen_x-211)/2
CAPTION 0,"SPRITES TOOLS"

IMAGE 2
BUTTON 3: LEFT 3,-1000 : CAPTION 3,"SOURIS SUR LE SPRITE"
hnd_button% = HANDLE(3): ON_ClICK 3,AfficherZoom

' Trace la palette de couleurs html, de &000000 à &FFFFFF, pas de &33
' &000000, &000033, &000066, &000099, &0000CC, &0000FF, &003300, &003333, etc.
wco% = 15: hco% = 15: ech% = 0: ecv% = 0
wct% = 6*(wco%+ech%): hct% = 36*(hco%+ecv%)
affich_palette%=0:affich_zoom%=0
FORM 300: HIDE 300 : TOP 300, 0: LEFT 300, 0: BORDER_SMALL 300
CAPTION 300, " - PALETTE -"
WIDTH 300, wct%+16: HEIGHT 300, hct%+34
PICTURE 301: PARENT 301, 300: WIDTH 301, wct%: HEIGHT 301,hct%
2D_TARGET_IS 301
ra% = 0: ga% = 0: ba% = 0
FOR j% = 0 TO 35
    y% = j%*(hco%+ecv%)
    FOR i% = 0 TO 5
        x% = i%*(wco%+ech%)
        2D_FILL_COLOR ra%,ga%,ba%
        2D_RECTANGLE x%,y%,x%+wco%-1,y%+hco%-1
        ba% = ba% + HEX("33")
        IF ba% > 255
            ba% = 0: ga% = ga% + HEX("33")
            IF ga% > 255
                ga% = 0: ra% = ra% + HEX("33")
            END_IF
        END_IF
    NEXT i%
NEXT j%
ON_CLICK 301, Couleur
CONTAINER 310 : HIDE 310 : PARENT 310,300 :WIDTH 310,200 : HEIGHT 310, 80
TOP 310,5 : LEFT 310,6*(wco%+ech%)+5
ALPHA 311 : PARENT 311,310 : WIDTH 311, 200 : TOP 311, 7: LEFT 311,3
FONT_BOLD 311 : FONT_COLOR 311,50,50,200 : CAPTION 311,"  COULEUR SELECTIONNEE"
ALPHA 316 : PARENT 316,310 : WIDTH 316,58 : TOP 316,27 : LEFT 316,6
FONT_COLOR 316,255,0,0 : CAPTION 316,"ROUGE"
ALPHA 317 : PARENT 317,310 : WIDTH 317,58 : TOP 317,27 : LEFT 317,70
FONT_COLOR 317,0,200,0 : CAPTION 317,"VERT"
ALPHA 318 : PARENT 318,310 : WIDTH 318,58 : TOP 318,27 : LEFT 318,134
FONT_COLOR 318,0,0,255 : CAPTION 318,"BLEU"
EDIT 319 : PARENT 319,310 : WIDTH 319,58 : TOP 319,47 : LEFT 319,6 : TEXT 319,"0"
EDIT 320 : PARENT 320,310 : WIDTH 320,58 : TOP 320,47 : LEFT 320,70 : TEXT 320,"0"
EDIT 321 : PARENT 321,310 : WIDTH 321,58 : TOP 321,47 : LEFT 321,134 : TEXT 321,"0"
ALPHA 302 : PARENT 302,300 : HIDE 302 : WIDTH 302,58 : TOP 302,92 : LEFT 302,6*(wco%+ech%)+10
FONT_BOLD 302 : CAPTION 302,"APPERCU"
PICTURE 303 : HIDE 303 : PARENT 303,300 : WIDTH 303,60 : TOP 303,90 : LEFT 303,6*(wco%+ech%)+74
HEIGHT 303,18

' Menu principal
no%=100 : main_menu no% : Menu% = no%
' Sous menu fichier
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"Fichier"
no% = no% + 1 : sub_menu no% : parent no%,no2% : Charger% = no%
caption no%,"Charger": on_click no%,charger
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Enregistrer"
inactive no% : Sauver% = no% : on_click no%,sauver
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Quitter": on_click no%,quitter
' Sous menu outils
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"Outils"
' Sous menu affichage
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"  Afficher"
no% = no% + 1 : sub_menu no% : parent no%,no2% : bpalette% = no%
caption no%,"Afficher Palette": on_click no%,aff_palette

PICTURE 4: LEFT 4,70
gosub aff_loupe
END

aff_palette:
  affich_palette%=1-affich_palette%
  IF affich_palette%=1
    CAPTION bpalette%,"X Afficher Palette"
    SHOW 300 : ON_CLOSE 300,aff_palette
  ELSE
    CAPTION bpalette%,"  Afficher Palette"
    HIDE 300 : OFF_CLOSE 300
  END_IF
RETURN

AfficherZoom:
OFF_CLICK 3
CAPTION 0,"Souris en : " + STR$(MOUSE_X_POSITION(4)) + ";" +STR$(MOUSE_Y_POSITION(4))
WAIT 200
CAPTION 0,""
ON_CLICK 3,AfficherZoom
RETURN

aff_loupe:
' définir un rectangle de numéro num% (de 1 à 200)
res% = dll_call2("ClickSetHook",handle(0),hnd_button%)
res% = dll_call3("ClickSetLinkRect",hnd_button%,0-7,4)
RETURN

Charger:
  OpenImg()
  WIDTH 4,res_x%:HEIGHT 4,res_y%: TOP 4,10
  2D_TARGET_IS 4 : 2D_IMAGE_PASTE 2,0,0
  CAPTION 0,"Edition du sprite : " + R_OpenImg$
  C1% = WIDTH(4)  : IF C1% <  60 THEN C1%= 60
  C2% = HEIGHT(4) : IF C2% < 100 THEN C2%=100
  HEIGHT 0,C2%+160 : WIDTH 0,C1%+306
  Modif% = 0 : INACTIVE Sauver%
RETURN

Sauver:
  SaveImg()
  Modif%=0 : inactive Sauver%
RETURN

SUB SaveImg()
  FILE_SAVE 4,Img_File$
RETURN

SUB OpenImg()
  IF VARIABLE("R_OpenImg$") = 0 THEN DIM R_OpenImg$
  IF VARIABLE("Img_File$") = 0 THEN DIM Img_File$
  DIM_LOCAL OpenImg_res%,OpenImg_filter$:OpenImg_filter$="*.JPG;*.BMP;*.GIF;*.PNG;*.EMF;*.ICO;*.WMF"
  OPEN_DIALOG 1
  FILTER 1,"Fichiers images|"+OpenImg_filter$+"|Tous|*.*"
  Img_File$ = FILE_NAME$(1) : DELETE 1
  IF Img_File$ <> "_"
    IF INSTR(OpenImg_filter$,UPPER$(RIGHT$(Img_File$,4)))=0
      MESSAGE "Désolé mais ce format ("+LOWER$(RIGHT$(Img_type$,3))+")"+chr$(10)+"n'est pas pris en compte !"
    ELSE
      OpenImg_res%=DLL_CALL1("LoadAnyImageFile",adr(Img_File$))
      DimImg(): WIDTH 2,res_x% : HEIGHT 2,res_y%: CLIPBOARD_PASTE 2
      Rinstr(Img_File$,"\")
      R_OpenImg$ = RIGHT$(Img_File$,LEN(Img_File$)-rs_k%)
    END_IF
  END_IF
END_SUB

SUB Rinstr(ch$,sq$)
' recherche de sq$ dans ch$ à partir de la fin (~Instr inversé) -> rs_k%
IF VARIABLE("rs_k%") = 0 THEN DIM rs_k%
FOR rs_k% = LEN(ch$)-LEN(sq$)+1 TO 1 STEP -1
    IF MID$(ch$, rs_k%, LEN(sq$)) = sq$ THEN EXIT_FOR
NEXT rs_k%
END_SUB

SUB DimImg()
  IF VARIABLE("res_x%") = 0 THEN DIM res_x%,res_y%
  res_x% = DLL_CALL0("GetClipboardPictureWidth")
  res_y% = DLL_CALL0("GetClipboardPictureHeight")
END_SUB

Couleur:
  x% = MOUSE_X_POSITION(301): y% = MOUSE_Y_POSITION(301)
  ra% = COLOR_PIXEL_RED(301,x%,y%)
  ga% = COLOR_PIXEL_GREEN(301,x%,y%)
  ba% = COLOR_PIXEL_BLUE(301,x%,y%)
  wct% = 6*(wco%+ech%)+210 : WIDTH 300, wct%+16 : SHOW 310 : SHOW 302
  TEXT 319,STR$(ra%) :  TEXT 320,STR$(ga%):  TEXT 321,STR$(ba%)
  COLOR 303,ra%,ga%,ba% : SHOW 303
RETURN

Quitter:
  TIMER_OFF_ALL
  res% = dll_call1("ClickClearHook",handle(4))
  DLL_OFF
Terminate
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 18:32

Le problème est ici:
Code:
aff_loupe:
' définir un rectangle de numéro num% (de 1 à 200)
res% = dll_call2("ClickSetHook",handle(0),hnd_button%)
res% = dll_call3("ClickSetLinkRect",hnd_button%,0-7,4)
RETURN

1. La fonction ClickSetHook établit un lien entre un objet (dans ton cas, la form 0) et un objet EDIT dont on passe le handle. Ce EDIT recevra les informations sur l'évènement intercepté. Or, tu passes le handle d'un bouton, pas celui d'un edit.

2. La fonction ClickSetLinkRect établie un lien entre un bouton invisible à déclencher par l'évènement, un code fonction (tu as choisi -7 = souris bouge dans le rectangle) et un numéro de rectangle (tu as choisi le rectangle 4).
Or, le rectangle 4 n'est pas défini. Il faut auparavant appeler la fonction ClickDefineRect pour le définir. Attention: fais cela une seule fois, au début du programme, et pas de façon répététive !
Ensuite, en utilisant le code -7, tu auras des milliers d'évènements à traiter. Tu ferais mieux de déclarer 2 évènements: u pour entrée de souris et l'autre pour sortie de souris

Conseils:
1. définis ton rectangle au début du programme.
2. crée un objetr EDIT caché et utilise-le pour la fonction ClickSetHook, au lieu du handle du bouton
3. utilise deux boutons cachés, chacun avec un appel à ClickSetLinkRect, avec le même rectangle. Le premier avec le code -5 (entrée de souris), le second avec le code -6 (sortie de souris). Le code -7 (mouvement de souris) ne sert que si tu veux suivre à la trace la position de la souris tant qu'elle est dans le rectangle.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 18:52

OK Klaus, je fais le test dans quelques minutes, je donne ma première leçon de Panoramic à mon fils en ce moment... Wink
J'en suis à la page 7 ...
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 18:55

Louable initiative !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 19:40

Désolé, je ne comprends toujours pas, je voudrais juste qu'il m'affiche la position de la souris quand je suis sur le sprite.
Mais j'ai dû passer trop de temps depuis les explications, je ne comprends vraiment pas ce que je dois faire ...

J'ai modifié le programme plusieurs fois pour essayé mais rien ne se passe... Je m'y prends mal mais je n'arrive pas à faire mieux ...
Code:
REM -------------------------------------------------------------
REM ---                                                      ---
REM ---            Sprites tool en Panoramic v1.0            ---
REM ---                                                      ---
REM -------------------------------------------------------------
REM
REM Permet de:
REM      - Remplacer les couleurs 0;0;0 des images par des 0;0;1
REM      - Remplacer une couleur de fond par des 0;0;0
REM      - Ajuster et déplacer un sprite en hauteur ou largeur
REM

LABEL Charger,Quitter,Sauver,Couleur,aff_palette,aff_loupe
LABEL AfficherZoom
' ,Pipette,Remplace,Selectionne_couleur,Echange
' LABEL CopieCouleurARemplacer,CopieCouleurDeRemplacement
' LABEL R_NOIR,R_ROSE,R2_FAUXNOIR,R2_NOIR

DIM D$ : D$ = "C:\Panoramic-Init\sources\Barbarian-jc\"
DIM Ligne,Col,C1%,C2%,C3%,S1$,S2$,S3$,Modif%
DIM Charger%,Sauver%
DIM wco%, hco%, wct%, hct%, ech%, ecv%, ra%, ga%, ba%, i%, j%, x%, y%
DIM affich_palette%,affich_zoom%
DIM Menu%,no%,no2%,bpalette%,bzoom%,res%,hnd_button%

DLL_ON D$+"KGF.dll"
HEIGHT 0,300:WIDTH 0,400:LEFT 0,(screen_x-211)/2
CAPTION 0,"SPRITES TOOLS"

IMAGE 2
BUTTON 3: LEFT 3,-1000 : CAPTION 3,"SOURIS SUR LE SPRITE"
hnd_button% = HANDLE(3): ON_ClICK 3,AfficherZoom

' Trace la palette de couleurs html, de &000000 à &FFFFFF, pas de &33
' &000000, &000033, &000066, &000099, &0000CC, &0000FF, &003300, &003333, etc.
wco% = 15: hco% = 15: ech% = 0: ecv% = 0
wct% = 6*(wco%+ech%): hct% = 36*(hco%+ecv%)
affich_palette%=0:affich_zoom%=0
FORM 300: HIDE 300 : TOP 300, 0: LEFT 300, 0: BORDER_SMALL 300
CAPTION 300, " - PALETTE -"
WIDTH 300, wct%+16: HEIGHT 300, hct%+34
PICTURE 301: PARENT 301, 300: WIDTH 301, wct%: HEIGHT 301,hct%
2D_TARGET_IS 301
ra% = 0: ga% = 0: ba% = 0
FOR j% = 0 TO 35
    y% = j%*(hco%+ecv%)
    FOR i% = 0 TO 5
        x% = i%*(wco%+ech%)
        2D_FILL_COLOR ra%,ga%,ba%
        2D_RECTANGLE x%,y%,x%+wco%-1,y%+hco%-1
        ba% = ba% + HEX("33")
        IF ba% > 255
            ba% = 0: ga% = ga% + HEX("33")
            IF ga% > 255
                ga% = 0: ra% = ra% + HEX("33")
            END_IF
        END_IF
    NEXT i%
NEXT j%
ON_CLICK 301, Couleur
CONTAINER 310 : HIDE 310 : PARENT 310,300 :WIDTH 310,200 : HEIGHT 310, 80
TOP 310,5 : LEFT 310,6*(wco%+ech%)+5
ALPHA 311 : PARENT 311,310 : WIDTH 311, 200 : TOP 311, 7: LEFT 311,3
FONT_BOLD 311 : FONT_COLOR 311,50,50,200 : CAPTION 311,"  COULEUR SELECTIONNEE"
ALPHA 316 : PARENT 316,310 : WIDTH 316,58 : TOP 316,27 : LEFT 316,6
FONT_COLOR 316,255,0,0 : CAPTION 316,"ROUGE"
ALPHA 317 : PARENT 317,310 : WIDTH 317,58 : TOP 317,27 : LEFT 317,70
FONT_COLOR 317,0,200,0 : CAPTION 317,"VERT"
ALPHA 318 : PARENT 318,310 : WIDTH 318,58 : TOP 318,27 : LEFT 318,134
FONT_COLOR 318,0,0,255 : CAPTION 318,"BLEU"
EDIT 319 : PARENT 319,310 : WIDTH 319,58 : TOP 319,47 : LEFT 319,6 : TEXT 319,"0"
EDIT 320 : PARENT 320,310 : WIDTH 320,58 : TOP 320,47 : LEFT 320,70 : TEXT 320,"0"
EDIT 321 : PARENT 321,310 : WIDTH 321,58 : TOP 321,47 : LEFT 321,134 : TEXT 321,"0"
ALPHA 302 : PARENT 302,300 : HIDE 302 : WIDTH 302,58 : TOP 302,92 : LEFT 302,6*(wco%+ech%)+10
FONT_BOLD 302 : CAPTION 302,"APPERCU"
PICTURE 303 : HIDE 303 : PARENT 303,300 : WIDTH 303,60 : TOP 303,90 : LEFT 303,6*(wco%+ech%)+74
HEIGHT 303,18

' Menu principal
no%=100 : main_menu no% : Menu% = no%
' Sous menu fichier
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"Fichier"
no% = no% + 1 : sub_menu no% : parent no%,no2% : Charger% = no%
caption no%,"Charger": on_click no%,charger
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Enregistrer"
inactive no% : Sauver% = no% : on_click no%,sauver
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"-"
no% = no% + 1 : sub_menu no% : parent no%,no2% : caption no%,"Quitter": on_click no%,quitter
' Sous menu outils
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"Outils"
' Sous menu affichage
no% = no% + 1 : sub_menu no% : parent no%,Menu% : no2% = no% : caption no%,"  Afficher"
no% = no% + 1 : sub_menu no% : parent no%,no2% : bpalette% = no%
caption no%,"Afficher Palette": on_click no%,aff_palette

PICTURE 4: LEFT 4,70
res% = dll_call5("ClickDefineRect",1,70,0,WIDTH(4),HEIGHT(4))
gosub aff_loupe
END

aff_palette:
  affich_palette%=1-affich_palette%
  IF affich_palette%=1
    CAPTION bpalette%,"X Afficher Palette"
    SHOW 300 : ON_CLOSE 300,aff_palette
  ELSE
    CAPTION bpalette%,"  Afficher Palette"
    HIDE 300 : OFF_CLOSE 300
  END_IF
RETURN

AfficherZoom:
OFF_CLICK 3
CAPTION 0,"Souris en : " + STR$(MOUSE_X_POSITION(4)) + ";" +STR$(MOUSE_Y_POSITION(4))
WAIT 200
CAPTION 0,""
ON_CLICK 3,AfficherZoom
RETURN

aff_loupe:
' définir un rectangle de numéro num% (de 1 à 200)
res% = dll_call3("ClickSetLinkRect",hnd_button%,0-7,1)
Message "Activé"
RETURN

Charger:
  OpenImg()
  WIDTH 4,res_x%:HEIGHT 4,res_y%: TOP 4,10
  2D_TARGET_IS 4 : 2D_IMAGE_PASTE 2,0,0
  CAPTION 0,"Edition du sprite : " + R_OpenImg$
  C1% = WIDTH(4)  : IF C1% <  60 THEN C1%= 60
  C2% = HEIGHT(4) : IF C2% < 100 THEN C2%=100
  HEIGHT 0,C2%+160 : WIDTH 0,C1%+306
  res% = dll_call5("ClickDefineRect",1,left(4),top(4),WIDTH(4),HEIGHT(4))
  Modif% = 0 : INACTIVE Sauver%
RETURN

Sauver:
  SaveImg()
  Modif%=0 : inactive Sauver%
RETURN

SUB SaveImg()
  FILE_SAVE 4,Img_File$
RETURN

SUB OpenImg()
  IF VARIABLE("R_OpenImg$") = 0 THEN DIM R_OpenImg$
  IF VARIABLE("Img_File$") = 0 THEN DIM Img_File$
  DIM_LOCAL OpenImg_res%,OpenImg_filter$:OpenImg_filter$="*.JPG;*.BMP;*.GIF;*.PNG;*.EMF;*.ICO;*.WMF"
  OPEN_DIALOG 1
  FILTER 1,"Fichiers images|"+OpenImg_filter$+"|Tous|*.*"
  Img_File$ = FILE_NAME$(1) : DELETE 1
  IF Img_File$ <> "_"
    IF INSTR(OpenImg_filter$,UPPER$(RIGHT$(Img_File$,4)))=0
      MESSAGE "Désolé mais ce format ("+LOWER$(RIGHT$(Img_type$,3))+")"+chr$(10)+"n'est pas pris en compte !"
    ELSE
      OpenImg_res%=DLL_CALL1("LoadAnyImageFile",adr(Img_File$))
      DimImg(): WIDTH 2,res_x% : HEIGHT 2,res_y%: CLIPBOARD_PASTE 2
      Rinstr(Img_File$,"\")
      R_OpenImg$ = RIGHT$(Img_File$,LEN(Img_File$)-rs_k%)
    END_IF
  END_IF
END_SUB

SUB Rinstr(ch$,sq$)
' recherche de sq$ dans ch$ à partir de la fin (~Instr inversé) -> rs_k%
IF VARIABLE("rs_k%") = 0 THEN DIM rs_k%
FOR rs_k% = LEN(ch$)-LEN(sq$)+1 TO 1 STEP -1
    IF MID$(ch$, rs_k%, LEN(sq$)) = sq$ THEN EXIT_FOR
NEXT rs_k%
END_SUB

SUB DimImg()
  IF VARIABLE("res_x%") = 0 THEN DIM res_x%,res_y%
  res_x% = DLL_CALL0("GetClipboardPictureWidth")
  res_y% = DLL_CALL0("GetClipboardPictureHeight")
END_SUB

Couleur:
  x% = MOUSE_X_POSITION(301): y% = MOUSE_Y_POSITION(301)
  ra% = COLOR_PIXEL_RED(301,x%,y%)
  ga% = COLOR_PIXEL_GREEN(301,x%,y%)
  ba% = COLOR_PIXEL_BLUE(301,x%,y%)
  wct% = 6*(wco%+ech%)+210 : WIDTH 300, wct%+16 : SHOW 310 : SHOW 302
  TEXT 319,STR$(ra%) :  TEXT 320,STR$(ga%):  TEXT 321,STR$(ba%)
  COLOR 303,ra%,ga%,ba% : SHOW 303
RETURN

Quitter:
  TIMER_OFF_ALL
  DLL_OFF
Terminate
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 20:55

Tu y est presque. Tu as malheureusement supprime l'appel à ClickSetHook - la fonction centrale qui initialise le système d'interception :

Fais ceci:
Code:
dim hnd_edit%
edit 1234 : hide 1234 : hnd_edit% = handle(1234)
...
aff_loupe:
' définir un rectangle de numéro num% (de 1 à 200)
res% = dll_call2("ClickSetHook",handle(0),hnd_edit%)
res% = dll_call3("ClickSetLinkRect",hnd_button%,0-7,1)
Message "Activé"
RETURN

Et ça marchera comme tu le souhaites.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptySam 27 Avr 2013 - 21:25

Merci Klaus, non seulement ça marche mais en plus, je crois avoir compris mon erreur ...
Merci beaucoup pour ton explication et tes fonctions si pratiques (même si c'est parfois complexe à comprendre pour nos petits cerveaux ... Wink )
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyLun 29 Avr 2013 - 11:51

Klaus, je me suis fait 2 petits sous programmes pour faire les miroirs horizontaux et verticaux. Tu me confirmes, ce n'était pas faisable directement par un appel dans KGF ?
Autre question, dans tes fonctions, as tu une fonction de substitution de couleur(s) vers une autre couleur ?
Je demande ça puisque certaiens fonctions pourraient être plus rapudes à l'éxecution que celles que je code.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyLun 29 Avr 2013 - 12:00

Effectivement, pour le moment, je n'ai ni effet miroir ni remplacement d'une couleur, dans les fonctions existantes. J'ai seulement la rotation d'une image et l'application d'un filtre de couleurs.

Mais l'effet miroir et le remplacement d'une couleur est réalisable aisément par le même principe que les routines existantes. Si cela présente un intérêt, je peux le faire.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyLun 29 Avr 2013 - 12:38

J'ai jouté la fonction ReplacePictureColor qui remplace une couleur RGB par une autre. Recharger KGF.dll, KGF_SUB.bas et la doc qui est à jour.

Ca, c'était la partie "facile". Pour l'effet miroir, qu'est-ce que tu souhaites: miroir selon un axe vertical placé horizontalement au milieu de l'image, ainsi que miroir selon un axe horizontal placé verticalement au milieu de l'image ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 EmptyLun 29 Avr 2013 - 12:48

Il voudrait bien les deux...

(par contre je ne comprends pas bien les expressions 'un axe vertical placé horizontalement' ou 'un axe horizontal placé verticalement' ?
J'aurais pensé symétrie horizontale, inversion gauche/droite, ou symétrie verticale, inversion haut/bas, tout simplement ?)
Revenir en haut Aller en bas
Contenu sponsorisé





2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty
MessageSujet: Re: 2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect   2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect - Page 2 Empty

Revenir en haut Aller en bas
 
2.13 du 8 Avril 2013: correction bug dans ClickSetLinkRect
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» 2.22 du 27 avril 2013: correction dans SearchStringList
» 2.23 du 28 avril 2013: correction bug dans SearchStringList
» 2.18 du 23 avril 2013: correction bug dans SearchStringList
» 2.15 du 21 avril 2013: correction bug dans ExecuteProgram
» 2.20 du 26 avril 2013: correction de SerachStringList

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: