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
» PANORAMIC V 1
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar papydall Aujourd'hui à 3:22

» select intégrés [résolu]
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jjn4 Hier à 17:00

» number_mouse_up
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jjn4 Hier à 11:59

» Aide de PANORAMIC
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jjn4 Hier à 11:16

» trop de fichiers en cours
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar lepetitmarocain Hier à 10:43

» Je teste PANORAMIC V 1 beta 1
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar papydall Hier à 4:17

» bouton dans autre form que 0
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Conflit entre ON_USER_EVENT et INACTIVE 0 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 Conflit entre ON_USER_EVENT et INACTIVE 0

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


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

Conflit entre ON_USER_EVENT et INACTIVE 0 Empty
MessageSujet: Conflit entre ON_USER_EVENT et INACTIVE 0   Conflit entre ON_USER_EVENT et INACTIVE 0 EmptyMar 12 Avr 2022 - 18:25

J'ai constaté un curieux phénomène.

La commande ON_USER_EVENT n'est pas prise en compte si un INACTIVE 0 a été émis auparavant, même si un ACTIVE 0 suit après. Aucun USER_EVENT n'est réçu...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Conflit entre ON_USER_EVENT et INACTIVE 0 Empty
MessageSujet: Re: Conflit entre ON_USER_EVENT et INACTIVE 0   Conflit entre ON_USER_EVENT et INACTIVE 0 EmptyMar 12 Avr 2022 - 19:01

J'ai testé avec la V0929i8 et la V0929i11 et ces codes:
Code:
label traite_event

inactive 0

On_User_Event traite_event

 dll_on "C:\Program Files\FreeBASIC\Mes sources\PANORAMIC dll\MaDLL.dll"
' dll_on "MaDLL.dll"
print dll_call1("USER_EVENT",handle(0))
dll_off

active 0

end

traite_event:
message "événement déclenché par DLL"+chr$(13)+chr$(10)+"USER_EVENT_WPARAM="+str$(USER_EVENT_WPARAM)+chr$(13)+chr$(10)+"USER_EVENT_LPARAM="+str$(USER_EVENT_LPARAM)
return

et

Code:
inactive 0

application_title "Test library"

label Traite_User_Event
dim wparam%,lparam%
dim titre_form$

 ' nouvelle commande utilisateur
 On_User_Event Traite_User_Event
 '
 wparam% = 12
 lparam% = 34
 titre_form$="PANORAMIC V "+version$
 SEND_EVENT_B(titre_form$, wparam%, lparam%)
' MESSAGE_SEND handle_form("PANORAMIC V "+version$),4024,wparam%, lparam%   :' commande caché, sans effet

active 0  

END
Traite_User_Event:
'  Off_User_Event  :' erreur(29) ---> Plus d'accès aux variables systèmes si "Off_User_Event"
  '
   select USER_EVENT_WPARAM
   case 12
      message "USER_EVENT_WPARAM = "+str$(USER_EVENT_WPARAM)+chr$(13)+chr$(10)+"USER_EVENT_LPARAM = "+str$(USER_EVENT_LPARAM)
   end_select
   '
'   On_User_Event Traite_User_Event
return


' SUBs
' Nouvelles commandes dlls
sub SEND_EVENT_A(form_name$,value1%,value2%)
 dim_local hndl%
   if variable("event_index%")=0
      dim event_index%
      if variable("user32%")=0 then dim user32%
      event_index%=4024 : user32%=2   :' event_index% doit toujours avoir la valeur 4024
      ' cré la commande qui permet de déclencher un évènement
      LIBRARY user32%,"user32.dll"
      command "call_user_event","SendMessageA",user32%,"IIII","stdcall"
   end_if
  '
  ' déclenche l'évènement(Attention, c'est toujours et uniquement le form 0 de l'executable en cours qui active la commande 'on_user_event'!)
  hndl%=handle_form(form_name$)
  if hndl%<>0
     call_user_event hndl%,event_index%,value1%,value2%
  else
     ' ne rien faire
  end_if    
end_sub


' commande dll classique
sub SEND_EVENT_B(form_name$,value1%,value2%)
 dim_local hndl%,ret%
  ' déclenche l'évènement(Attention, c'est toujours et uniquement le form 0 de l'executable en cours qui active la commande 'on_user_event'!)
  hndl%=handle_form(form_name$)
  if hndl%<>0
     dll_on "user32.dll"
     ret%=dll_call4("SendMessageA",hndl%,4024,value1%,value2%)
     dll_off
  else
     ' ne rien faire
  end_if    
end_sub



et je n'ai rien constaté.
Revenir en haut Aller en bas
Klaus

Klaus


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

Conflit entre ON_USER_EVENT et INACTIVE 0 Empty
MessageSujet: Re: Conflit entre ON_USER_EVENT et INACTIVE 0   Conflit entre ON_USER_EVENT et INACTIVE 0 EmptyMar 12 Avr 2022 - 23:47

OK. J'ai fait des tests plus approfondis.

Constat: si on fait DLL_ON alors que la form 0 est inactive, alors la génération d'un USER_EVENT n'a jamais lieu.
Vérification faite: le fait de faire INACTIVE 0 fause la détection du handle de la form 0 !
Or, lors du chargement de la DLL, je détermine, une fois pour toutes, le handle de la form 0.
Donc, si la form 0 est inactive lors de DLL_ON, ma variable globale MAIN_FORM_HANDLE ne contient pas la
bonne valeur et tout le mécanisme ensuite est faussé.

Code Panoramic commenté:
Code:
' test_SendUserEvent.bas

label userevent
dim res%, hnd1%, hnd2%, hnd3%

hnd1% = handle(0)
 inactive 0                    : ' USER_EVENT n'est pas généré
hnd2% = handle(0)
dll_on "KGF.dll"              : ' <========= bloque la génération du USER_EVENT si form 0 est inactive !
 active 0
hnd3% = handle(0)
on_user_event userevent
res% = dll_call2("SendUserEvent",21,23)
message "Handles de form 0: "+str$(hnd1%)+"-->"+str$(hnd2%)+"-->"+str$(hnd3%)+"  MainFormHandle="+str$(res%)
end

userevent:
  message "User_Event: "+str$(user_event_wparam)+"  "+str$(user_event_lparam)
  return

Code de la fonction SendUserEvent:
Code:
const
  CM_PANORAMIC_USER = WM_USER + 3000;

function SendUserEvent(wp,lp: integer): integer; stdcall; export;
begin
  SendMessage(MainFormHandle,CM_PANORAMIC_USER,wp,lp);
  result := MainFormHandle;
end;
exports SendUserEvent;

Conclusion:
S'il faut charger KGF.dll, il ne faut surtout pas désactiver la form 0 !

EDIT
Ce problème peut être évité en insérant cette ligne dans le code Panoramic immédiatement après DLL_ON:
Code:
res% = dll_call1("SetMainFormHandle",handle(0))
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Conflit entre ON_USER_EVENT et INACTIVE 0 Empty
MessageSujet: Re: Conflit entre ON_USER_EVENT et INACTIVE 0   Conflit entre ON_USER_EVENT et INACTIVE 0 Empty

Revenir en haut Aller en bas
 
Conflit entre ON_USER_EVENT et INACTIVE 0
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conflit de méthodes...
» FLTK et inactive
» ACTIVE/INACTIVE sur CONTAINER_OPTION
» Fonction inkey$ inactive dans un form autre que form0
» FLTK: pb avec inactive form

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: