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.
bouton roll-over Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
bouton roll-over Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
bouton roll-over Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
bouton roll-over Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
bouton roll-over Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
bouton roll-over Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
bouton roll-over Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
bouton roll-over Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
bouton roll-over Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
bouton roll-over Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
bouton roll-over Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
bouton roll-over Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
bouton roll-over Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
bouton roll-over Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
bouton roll-over 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
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 bouton roll-over

Aller en bas 
+2
Klaus
Yannick
6 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Yannick




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

bouton roll-over Empty
MessageSujet: bouton roll-over   bouton roll-over EmptyMer 27 Mar 2013 - 13:10

Ce petit appel, s'adresse à plus particulièrement à Klaus...

Il y a quelque temps, il me semble que tu avais publié un bout de code
traitant d'un effet "roll-over" sur un bouton.
Je ne le retrouve plus sur le forum. Pourrais tu me rappeler le sujet ?

Merci ...
Revenir en haut Aller en bas
Klaus

Klaus


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyMer 27 Mar 2013 - 14:04

Je ne sais pas exactement à quoi tu fais allusion. en tout cas, je te donne les liens suivants:
Un bouton qui bouge
Boutons avec images et textes simulés

Sinon, tu peux regarder dans les fonctions de KGF.dll, catégorie "interception des clics sur un objet". Il y a la possibilité de réagir sur l'entrée et/ou la sortie de la souris dans un objet, donc début et fin de survol. C'est la routine ClickSetLink qu'il faut regarder, puis l'ensemble des infos de cette section pour comprendre le mécanisme.
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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyMer 27 Mar 2013 - 14:34

Réponse bis:

Voici un petit programme de démo montrant comment on peut gérer le survol pour différents objets Panoramic:
Code:
' test_mouse_over.bas

label changer_type
dim res%

' === définition de quelques objets dont le survol est contrôlé
alpha 1 : top 1,10 : left 1,10 : caption 1,"Votre nom:"
edit 2 : top 2,10 : left 2,70 : width 2,200
container 10 : top 10,40 : left 10,10 : caption 10,"Fiche personnelle"
  width 10,400 : height 10,300
alpha 11 : parent 11,10 : top 11,20 : left 11,10 : caption 11,"Adresse:"
memo 12 : parent 12,10 : top 12,20 : left 12,80
  width 12,200 : height 12,50
alpha 13 : parent 13,10 : top 13,80 : left 13,10 : caption 13,"Numéro SS:"
edit 14 : parent 14,10 : top 14,80 : left 14,80 : width 14,200
list 15 : top 15,10 : left 15,430 : height 15,400
item_add 15,"aaaaaa"
item_add 15,"bbbbbb"
item_add 15,"cccccc"
check 16 : top 16,340 : left 16,10 : caption 16,"Surveillance permanente"
  width 16,150 : mark_on 16 : on_click 16,changer_type
check 17 : top 17,360 : left 17,10 : caption 17,"Sélection dans liste par glissement"
  width 17,250 : mark_off 17

' objet pour la trace du programme
alpha 99 : top 99,400 : left 99,10 : caption 99,"Repos"
alpha 98 : top 98,420 : left 98,10 : caption 98,"Rien"

KGF_initialize("KGF.dll")

create_mouse_over(8,100,1)
add_mouse_over(1,0,0,0,0)
add_mouse_over(2,0,255,0,0)
add_mouse_over(11,10,0,0,0)
add_mouse_over(12,10,0,255,255)
add_mouse_over(13,10,0,0,0)
add_mouse_over(14,10,0,255,255)
add_mouse_over(10,0,0,0,0)
add_mouse_over(15,0,255,255,0)

end

changer_type:
  mouse_over_type(checked(16))
  return

' cette procédure est appelée chaque fois que le curseur entre
' dans un des objets surveillés, ou sur la form 0
' flag%=1 ==> on est dans la form
' flag%=0 ==> on est en-dehors de la form
sub on_mouse_over(flag%,obj%)
  if flag%=1
    caption 99,str$(mouse_over_x%)+","+str$(mouse_over_y%)+"  sur objet "+str$(obj%)+"  "+str$(mouse_over_n%)
' à titre d'exemple, on va interdire l'entrée dans le champ "adresse"
' (objet 12) si le nom est vide (objet 2)
    if obj%=12
      if trim$(text$(2))=""
        MousePosition(left(12)+width(12)+left(10)+10,top(12)+top(10)+10)
      end_if
    end_if
    if object_type(obj%)=8
      GetListBoxItemFromPoint(obj%,mouse_over_x%, mouse_over_y%)
      if GetListBoxItemFromPoint>0
        if checked(17)=1 then SelectListBoxItem(handle(obj%),GetListBoxItemFromPoint)
      end_if
      caption 99,str$(mouse_over_x%)+","+str$(mouse_over_y%)+"  sur objet "+str$(obj%)+"  "+str$(mouse_over_n%)+"  item "+str$(GetListBoxItemFromPoint)
    end_if
  else
    caption 99,"Sorti"
  end_if
  GetObjectHandleUnderCursor()
  caption 98,"Han dle: "+str$(GetObjectHandleUnderCursor)
end_sub

#INCLUDE "mouse_over_SUB.bas"
#INCLUDE "KGF_SUB.bas"
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
pascal10000

pascal10000


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyMer 27 Mar 2013 - 19:55

klaus
une erreur survient à la ligne 31
(157) Call of unknown SUB , line: 31
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: Re   bouton roll-over EmptyMer 27 Mar 2013 - 19:57

Merci Klaus,

Je vais regarder çà ce soir.J'avais oublié de me déconnecter
avant de partir, d'où mon temps de réaction... Embarassed
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyMer 27 Mar 2013 - 22:00

@ Pascal 10000,

Je pense qu' il manque un tiret du 8 entre mouse et position ( mouse_position N,x,y)

edit : J'ai dit une bêtise, c'est une sub Rolling Eyes
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyMer 27 Mar 2013 - 22:13

J' ai écris çà mais....rien No

Code:
' constantes
Dim Dos$ : Dos$="C:\Users\Yannick\Desktop\Panoramic Essais\Essais O_Toll_Bar()\Icones\"

dim M_TB_deb%,M_TB_fin%
' varibles liées à la fonction verif_souris
Dim i0%,res%,res2%
' etiquettes d'évènements
Label Clic,Verif_souris,close

Dll_on "KGF.dll"

O_Form(0,0,1,0,0,400,(25*20)+16,"")
O_Tool_Bar(1,0,1)
O_Insert_Button_TB(10,Dos$+"PasteFromClipboard")

timer M_TB_fin%+1 :timer_interval M_TB_fin%+1,50 :on_Timer M_TB_fin%+1,Verif_souris

on_close 0,close

end


Sub O_Tool_Bar(No%,P%,V%)
  Dim_local i%,img$,L%,x%
  img$=Dos$+"Icone_vierge.bmp"
  L%=-25
  M_TB_deb%=No%
  M_TB_fin%=(width(P%)-16)/25
  Dim Tab$(M_TB_fin%,2)
  for i%=M_TB_deb% to M_TB_fin%
      L%=L%+25
      Tab$(i%,1)=img$
      Tab$(i%,2)=img$
      O_scene2d(i%,0,1,0,L%,25,25):file_load i%,Tab$(i%,1):inactive i% :cursor_point i%
  next i%
End_Sub

Sub O_Insert_Button_TB(P%,Type$)
  dim_local x%
  active P%
  Tab$(P%,1)=Type$+".bmp"
  Tab$(P%,2)=Type$+"_Select.bmp"
  file_load P%,Tab$(P%,1)
  on_click P%,Clic
End_Sub

Clic:
message "Ok!"
return

Verif_souris:
  for i0%=1 to M_TB_fin%
      if active(i0%)=1
        caption 0,str$(handle(i0%))
        res%=dll_call2("ClickSetLink",handle(i0%),5)
        if res%=1 :file_load i0%,Tab$(i0%,2):end_if
        res2%=dll_call2("ClickSetLink",handle(i0%),6)
        if res2%=1 :file_load i0%,Tab$(i0%,1):end_if
      end_if
  next i0%
  return

Close:
  Timer_off (M_TB_fin%+1)
  Dll_off
  return

#include "Objet_Lib.bas"
Vois tu ce qui ne va pas ?

je te te mets un lien pour le dossier complet :Panoramic Essais.zip
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyMer 27 Mar 2013 - 22:37

@ Klaus,

#INCLUDE "mouse_over_SUB.bas"
#INCLUDE "KGF_SUB.bas"

Y en a une que je ne connaissais pas ... Laughing , tu l'as caché où ? Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 0:35

Oups... Désolé. Vraiment désolé. Voici le module qui manque:
Code:
' mouse_over_SUB.bas

' le programme principal doit contenir une procédure on_mouse_over().
' Cette procédure sera appelée chaque fois que le curseur entre dans
' un objet surveillé. Avant d'appeler cette procédure, le programme
' effectue un éventuel changement de couleur, mais cette procédure est
' appelée pour tout objet scruté dans lequel le curseur entre, même
' s'il n'y a pas de changement de couleur.
'
' sub on_mouse_over(flag%,obj%)
'  if flag%=1
'    traiter ici l'évènement "dans la form" pour objet obj%
'  else
'    traiter ici l'évènement "en-dehors de la form"
'  end_if
' end_sub

message "mouse_over: ce module ne peut pas être exécuté directement."
terminate

' ===== routine évènement pour le timer (usage internne)
mouse_over_scruter:
  timer_off mouse_over_ntimer%
  GetMousePosition(handle(0))
  mouse_over_x% = GetMousePositionX%
  mouse_over_y% = GetMousePositionY%
  if (mouse_over_x%>=0) and (mouse_over_y%>=0)
    mouse_over_kold% = mouse_over_k%
    mouse_over_kiold% = mouse_over_ki%
    mouse_over_k% = 0
    mouse_over_ki% = 0
    for mouse_over_i%=1 to mouse_over_nobj%
      if mouse_over_x%>=mouse_over_gauche%(mouse_over_i%)
        if mouse_over_x%<(mouse_over_gauche%(mouse_over_i%)+mouse_over_largeur%(mouse_over_i%))
          if mouse_over_y%>=mouse_over_haut%(mouse_over_i%)
            if mouse_over_y%<(mouse_over_haut%(mouse_over_i%)+mouse_over_hauteur%(mouse_over_i%))
              mouse_over_k% = mouse_over_objets%(mouse_over_i%)
              mouse_over_ki% = mouse_over_i%
              exit_for
            end_if
          end_if
        end_if
      end_if
    next mouse_over_i%
    if (mouse_over_k%<>mouse_over_kold%) or (mouse_over_type%=1)
      if mouse_over_kold%>0
        if mouse_over_colorer%(mouse_over_kiold%)=1 then color mouse_over_kold%,255,255,255
      end_if
      if mouse_over_k%>0
        if mouse_over_colorer%(mouse_over_ki%)=1
          color mouse_over_k%,mouse_over_RGB%(mouse_over_ki%,1),mouse_over_RGB%(mouse_over_ki%,2),mouse_over_RGB%(mouse_over_ki%,3)
        end_if
      end_if
      mouse_over_n% = mouse_over_n% + 1
      on_mouse_over(1,mouse_over_k%)
    end_if
  else
      on_mouse_over(0,0)
  end_if
  timer_on mouse_over_ntimer%
  return

' ===== création du système mouse_over
'  maxobj% ==> nombre maxi d'objets à scruter
'  ntimer% ==> un numéro d'objet disponible pour créer le timer interne
'  typ%    ==> type de surveillance  0=changement d'objet  1=continuel
sub create_mouse_over(maxobj%,ntimer%,typ%)
  if label("mouse_over_scruter")=0 then label mouse_over_scruter
  if variable("mouse_over_nobj%")=0
    dim mouse_over_maxobj% : mouse_over_maxobj% = maxobj%
    dim mouse_over_ntimer% : mouse_over_ntimer% = ntimer%
    dim mouse_over_type% : mouse_over_type% = typ%
    dim mouse_over_nobj%
    dim mouse_over_k%
    dim mouse_over_ki%
    dim mouse_over_kold%
    dim mouse_over_kiold%
    dim mouse_over_i%
    dim mouse_over_n%
    dim mouse_over_x%
    dim mouse_over_y%
    dim mouse_over_objets%(mouse_over_maxobj%)
    dim mouse_over_gauche%(mouse_over_maxobj%)
    dim mouse_over_haut%(mouse_over_maxobj%)
    dim mouse_over_largeur%(mouse_over_maxobj%)
    dim mouse_over_hauteur%(mouse_over_maxobj%)
    dim mouse_over_colorer%(mouse_over_maxobj%)
    dim mouse_over_RGB%(mouse_over_maxobj%,3)
    timer mouse_over_ntimer% : timer_interval mouse_over_ntimer%,100
    on_timer mouse_over_ntimer%,mouse_over_scruter
  end_if
end_sub

' ===== supprimer le système mouse_over
sub delete_mouse_over()
  if variable("mouse_over_nobj%")=1
    timer_off mouse_over_ntimer%
    delete mouse_over_ntimer%
    free mouse_over_maxobj%
    free mouse_over_ntimer%
    free mouse_over_type%
    free mouse_over_nobj%
    free mouse_over_k%
    free mouse_over_ki%
    free mouse_over_kold%
    free mouse_over_kiold%
    free mouse_over_i%
    free mouse_over_n%
    free mouse_over_x%
    free mouse_over_y%
    free mouse_over_objets%
    free mouse_over_gauche%
    free mouse_over_haut%
    free mouse_over_large%
    free mouse_over_hauteur%
    free mouse_over_colorer%
    free mouse_over_RGB%
  end_if
end_sub

' ===== ajouter un objet à surveiller au système mouse_over
' obj%        ==> numéro de l'objet
' parent%    ==> numéro de l'objet parent de obj%
' R%, G%, B%  ==> couleurs RGB pour changement de couleur de fond
'                R%=G%=B%=0  ==>  pas de changement de couleur
sub add_mouse_over(obj%,parent%,R%,G%,B%)
  if mouse_over_nobj%<mouse_over_maxobj%
    mouse_over_nobj% = mouse_over_nobj% + 1
    mouse_over_objets%(mouse_over_nobj%) = obj%
    if parent%=0
      mouse_over_gauche%(mouse_over_nobj%) = left(obj%)
      mouse_over_haut%(mouse_over_nobj%) = top(obj%)
    else
      mouse_over_gauche%(mouse_over_nobj%) = left(obj%)+left(parent%)
      mouse_over_haut%(mouse_over_nobj%) = top(obj%)+top(parent%)
    end_if
    mouse_over_largeur%(mouse_over_nobj%) = width(obj%)
    mouse_over_hauteur%(mouse_over_nobj%) = height(obj%)
    if (R%=0) and (G%=0) and (B%=0)
      mouse_over_colorer%(mouse_over_nobj%) = 0
    else
      mouse_over_colorer%(mouse_over_nobj%) = 1
      mouse_over_RGB%(mouse_over_nobj%,1) = R%
      mouse_over_RGB%(mouse_over_nobj%,2) = G%
      mouse_over_RGB%(mouse_over_nobj%,3) = B%
    end_if
  end_if
end_sub

' ===== changer le type de surveillance
'  typ%    ==> type de surveillance  0=changement d'objet  1=continuel
sub mouse_over_type(typ%)
  mouse_over_type% = typ%
end_sub
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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 0:36

YOUPI !!!!!

Un début de solution, pour les prémisses d'une sub...
Code:
' constantes
Dim Dos$ : Dos$="C:\Users\Yannick\Desktop\Panoramic Essais\Essais O_Toll_Bar()\Icones\"

dim M_TB_deb%,M_TB_fin%
' variables liées à la fonction verif_souris
Dim i0%,res%,Ts%,Ls%,hnd%,bout%,cg%,cd%,j0%
hnd%=handle(0)
' etiquettes d'évènements
Label Clic,Verif_souris,close

Dll_on "KGF.dll"

O_Form(0,0,1,0,0,400,(25*20)+16,"")
O_Tool_Bar(1,0,1)
O_Insert_Button_TB(10,Dos$+"PasteFromClipboard")

timer M_TB_fin%+1 :timer_interval M_TB_fin%+1,500 :on_Timer M_TB_fin%+1,Verif_souris

on_close 0,close

end


Sub O_Tool_Bar(No%,P%,V%)
  Dim_local i%,img$,L%,x%
  img$=Dos$+"Icone_vierge.bmp"
  L%=-25
  M_TB_deb%=No%
  M_TB_fin%=(width(P%)-16)/25
  Dim Tab$(M_TB_fin%,2)
  for i%=M_TB_deb% to M_TB_fin%
      L%=L%+25
      Tab$(i%,1)=img$
      Tab$(i%,2)=img$
      O_scene2d(i%,0,1,0,L%,25,25):file_load i%,Tab$(i%,1):inactive i% :cursor_point i%
  next i%
End_Sub

Sub O_Insert_Button_TB(P%,Type$)
  dim_local x%
  active P%
  Tab$(P%,1)=Type$+".bmp"
  Tab$(P%,2)=Type$+"_Select.bmp"
  file_load P%,Tab$(P%,1)
  on_click P%,Clic
End_Sub

Clic:
message "Ok!"
return

Verif_souris:
  timer_on M_TB_fin%+1
  cg%=-26 : cd%=0
  res%=dll_call3("GetMousePosition",hnd%,adr(Ls%),adr(Ts%))
  if Ts%<25
      for i0%=1 to M_TB_fin%
      cg%=cg%+25 :cd%=cd%+25
        if Ls%>cg% and Ls%<cd%
            bout%=i0%
            for j0%=1 to M_TB_fin% :file_load j0%,Tab$(J0%,1):next j0%
            file_load bout%, Tab$(bout%,2)
        end_if
      next i0%
  else
      for j0%=1 to M_TB_fin% :file_load j0%,Tab$(J0%,1):next j0%
  end_if
return

Close:
  Timer_off (M_TB_fin%+1)
  Dll_off
  return

#include "Objet_Lib.bas"
le lien vers mon dossier de travail :Panoramic Essais.zip
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 0:42

On s'est croisé Klaus,

il n' y a pas de quoi être désolé, je me posais juste la question :
"Quel épisode ai je raté...?" Laughing Laughing Laughing

Dans le code que j'ai pondu en premier, j'avais bêtement oublié le "Timer_on N"
A vouloir aller plus vite que la musique...on en perd de la vigilance... Embarassed
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 1:00

On a un souci en panoramique avec "Mouse_X_Position(N)" et "Mouse_Y_Position(N)"
quand même.

Prenons le cas où on applique ces commandes au form 0.
Tant que le form est vide il n' y a pas de souci.
Maintenant, si on ajoute un objet, la commande cesse de fonctionner.
Comme si le form 0 n'existait plus.
C'est pour cela que je me sers de KGF.dll qui elle continu a fonctionné
même si la souris rencontre un autre objet.
Revenir en haut Aller en bas
Klaus

Klaus


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 1:19

C'est que tu as une mauvaise idée du fonctionnement de mouse_x_position(n) et consort.

Cette fonction te conne la coordonnée x si (et uniquement si) le curseur de souris se trouve dans l'objet n. Cela veut dire que l'objet n doit être celui immédiatement sous le curseur de souris. Si un autre objet est intercalé, comme c'est le cas d'un edit par exemple qui est pose "sur" la form 0, alors, tant que le curseur de souris se trouve à l'intérieur du edit, la fonction mouse_x_position ne peut donner autre chose que la position du curseur de souris à l'intérieur du edit. Le curseur de souris n'est plus considéré être dans la form 0 - il est "capté" par l'edit.

C'est entre autres à cela que servent mes fonctions; être indépendant de l'objet Panoramic. Avec mes fonctions, même en positionnement relatif, du peux passer le handle de la form 0, même si le curseur se trouve dans un edit qui lui-même peut être placé dans un container qui de son côté est placé sur la form 0. En fait, ma fonction qui retourne la position relative, demande à windows la position absolue du curseur ainsi que la position absolue de l'objet dont on passe le handle. Et à partir de cela, par différence, je calcule la position relative que je retourne. Ce fonctionnement diffère totalement de ce qu fait la fonction Panoramic mouse_x_position.
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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 1:55

Je suis d'accord avec ce que tu dis mais du moment
ou on passe le numéro d'objet en paramètre, on s'attend
à ce que la commande concerne l'objet demandé et
pas un autre.

A la limite si je voulais les coordonnées de la souris sur l'objet
traversé, je m'attendrai à un nom de commande du style :
Mouse_X_Position_Cross.

Je ne conteste pas ce que fait la commande mais son appellation
car si un jour Jack veut nous faire une commande qui remplace ta dll
comment pourra t il la dénommer ? Laughing
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 2:58

J'ai rajouté quelques icônes, changé une ou deux bricoles... Laughing

le lien : Panoramic Essais.zip

( je mettrai sur le webdav demain, enfin tout à l'heure... Rolling Eyes )
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 11:20

Salut tout le monde.
Comme je n’ai pas saisi encore de quoi vous parlez et voulant intervenir :
Il me semble que Ygeronimi a un souci avec mouse_x_position(n) et Klaus sait pourquoi cette fonction déconne.
La preuve :
Klaus a écrit:
Cette fonction te conne la coordonnée x si (et uniquement si) le curseur de souris se trouve dans l'objet n.
.
Voila bien une belle fonction qui conne !

Maintenant c’est moi qui déconne , pardon Klaus ! bouton roll-over 0066
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 13:06

Ah ! Ce lapsus est tellement joli que je ne le corrigerai pas ! Il y en a qui lisent attentivement- Merci !
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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 14:50

Je ne connaissais pas cette fonction de la commande...
lol!

Avez vous pu voir un petit peu ce que cela donnait comme rendu ?
Qu' en pensez vous ?

Laughing

Panoramic Essais .zip

Revenir en haut Aller en bas
JP06




Nombre de messages : 20
Age : 74
Date d'inscription : 01/01/2012

bouton roll-over Empty
MessageSujet: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 16:21

Bonjour,
J'ai essayé le contenu du ZIP en lien dans le message, l'effet obtenu est excellent, c'est bluffant !
Un petit inconvénient peut-être dû au fait que c'est un premier jet, a la fermeture de le fenêtre, Panoramic envoi un message d'erreur, si au préalable on a cliqué sur un des boutons : Panoramic a cessé de fonctionner etc...
Revenir en haut Aller en bas
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 16:56

@ JP 06 et aux autres,

Rajoutez :

Timer off ..... (avant le message)
Timer_on ..... (après le message )

Pause 1000 (à la fin de "Close :" juste avant le return )

__________________________

1 / lors du message le timer tournait encore alors que le form 0 n' était plus actif
2 / je pense que certaines taches lancées par le dernier on_ timer n' avait pas eu le temps
de se finir avant la fermeture du form

Corrigez moi si je dis une bêtise...
Revenir en haut Aller en bas
Jicehel

Jicehel


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 17:02

En fait si tu n'arrètes pas le timer, il y a empilement de l'évenement. Si par exemple tu a un message qui affiche voulez-vous quitter oui ou non, l'instruction d'après n'est pas executée si un timer court est actif car quand tu valides la réponse, l'événement timer se redéclenche et il te repose la question. Si tu quitte comme le timer est toujours actif, tu as un vilain message d'erreur qui apparait au bout de quelques secondes après la fermeture de ton programme.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 18:22

Ygeronimi passe à l'échelon supérieur !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 18:25

Ok ! , j'étais pas très loin mais pas encore arrivé... Laughing

Bref, ceci dit, le fait d'arrêter le timer avant et de le reprendre après
le message ne gêne pas le programme et résolve le problème
d'un message d'erreur.

Le "pause" laisse le programme finir les encours avant de l'arrêter
ce qui en évite sûrement un autre... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over EmptyJeu 28 Mar 2013 - 19:14

Au lieu d'utiliser un timer, pourquoi n'utilises-tu pas la possibilité de détecter l'entrée du curseur dans un objet ainsi que sa sortie ? Quelque soit le moment ? Tu n'as alors plus de problème de timer, et tu peux gérer chaque objet séparément, sans avoir à faire une boucle pour déterminer l'objet concerné par rapport qux coordonnées du curseur. Tu as directement l'objet et la nature de l'évènement. Regarde les deux sources que j'ai postées plus haut:
- test_mouse_over.bas (programme de démo)
- mouse_over_SUB.bas (des SUB spéciales pour ce cas)
ainsi que bien sûr KGF_SUB.bas. Il te suffit de déplacer le curseur sur les objets présents pour les voir reagir. Il y a même un objet qui "interdit" de sortir le curseur de l'objet vers la droite - il reste captif dans l'objet ! Certains objets changent de couleur etc. Et des informations sur les évènements sont affichées à l'écran. Ce sont des modules que j'avais publiés il y a un moment, et je les ai remis ici pour que ce soit dans le contexte.

L'avantage de procéder ainsi, est double:
- on évite la gestion souvent délicate des timers, libérant ainsi de la performance et de la réactivité du programme pour autre chose
- on réagit finement et sélectivement sur l'entrée dans un objet et pour la sortie d'un objet
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

bouton roll-over Empty
MessageSujet: re   bouton roll-over EmptyJeu 28 Mar 2013 - 19:23

@ Klaus,

Je pensais avoir du temps pour étudier ton code mais voilà,
Depuis hier, tous me presse de demande, femme, enfants, belle famille...
Bref, ils me tombent tous sur le râble et je n' arrive pas à me poser
plus de 10 minutes consécutives devant mon écran .

Je vais voir çà ce soir, ils vont bien finir par ce calmer... Laughing

Edit : Je crois qu' il y avait une histoire de handle sur un Picture aussi,
j' écris çà de tête, il faut que je vérifie... Laughing
Revenir en haut Aller en bas
Contenu sponsorisé





bouton roll-over Empty
MessageSujet: Re: bouton roll-over   bouton roll-over Empty

Revenir en haut Aller en bas
 
bouton roll-over
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Roll the camera?
» Bouton
» Dessine-moi un bouton...
» Un bouton qui bouge
» Problème de bouton qui ne réagit plus.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: