Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| évènements et objets système : listage automatique | |
| | Auteur | Message |
---|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: évènements et objets système : listage automatique Ven 19 Mai 2017 - 2:02 | |
| Bonjour à tous Il s'agit de la même liste que celle du menu aide->évènements, mais plus complète et généré par programmation! Les numéros avant les objets correspondent à leur 'object_type()'; voyez l'anomalie du numéro 28 - Code:
-
' Panoramic 0.9.28i12
' ============================================================== ' = Title : ' = ' = Author : Silverman ' = ' = Date : Mai 2017 ' = ' = Version: 1.0 ' ============================================================== ' Comments : Vérifie et affiche l'ensemble des évènements ' : associés à tous les objets ' ==============================================================
label trait_error , on_continu dim typ%,obj%,i,l,c
hide 0 : full_space 0
' on_error_goto trait_error TEST_EVENT(0,26) :' initialisation tableau MAKE_OBJECT_FROM_TYPE(26,26) : delete 26 :' initialisation tableau
' fabrique une grille pour inscrire les résultats alpha 4 : font_bold 4 : hide 4 :' pour obtenir la largeur d'un texte grid 5 : parent 5,0 : full_space 5 : font_bold 5 : color 5,239,239,239 grid_column 5,16 : grid_one_column_width 5,1,160 grid_row 5,51 : grid_row_height 5,18 ' écrire les évènements for i=1 to 15 EVENT_NAME$(i)=" "+EVENT_NAME$(i)+" " grid_write 5,1,i+1,EVENT_NAME$(i) : caption 4,EVENT_NAME$(i) : grid_one_column_width 5,i+1,text_width(EVENT_NAME$(i),4) :' 9*len(EVENT_NAME$(i))+9 next i ' écrire les objets for i = 0 to 49 grid_write 5,i+2,1,str$(i)+" : "+OBJECT_TYPE_NAME$(i) next i
' teste tous les objets... obj%=10 :' un numero d'objet pour les tests for typ%=0 to 49 MAKE_OBJECT_FROM_TYPE(typ%,obj%) :' ...selon leur type... ' if OBJECT_TYPE_NAME$(typ%)<>"_" :' ...excepté les types non défini for c=1 to 15 TEST_EVENT(c,obj%) :' teste tous les évènements de panoramic on_continu: fill_grid(typ%,c,result) :' remplir la grille next c if object_exists(obj%)=1 then delete obj% end_if next typ%
show 0 off_error_goto
END ' #################################################################################################### ' TRAITEMENT D'ERREUR ' trait_error: result=0 goto on_continu
' #################################################################################################### ' SUBS ' ' remplir la grille sub fill_grid(l,c,test) if test=0 ' grid_write 5,l+1,c+1,"E_"+str$(error_number) :' DEBUG else grid_write 5,l+2,c+1," X" end_if end_sub
' fabriquer un objet selon son type sub MAKE_OBJECT_FROM_TYPE(typ%,obj%) if variable("OBJECT_TYPE_NAME$")=0 dim OBJECT_TYPE_NAME$(50) dim OBJECT_TYPE_HANDLE(50) : ' Ce tableau n'est pas utilisé dans ce code source ' 0=néant / 1=handle / 2=handle_canvas / 4=handle_form / 8=objet non-visible / 16=objet non-déplaçable; Un objet peut avoir plusieurs propriétés(sommation) OBJECT_TYPE_NAME$(0)="MAIN_FORM" : OBJECT_TYPE_HANDLE(0)=7 OBJECT_TYPE_NAME$(1)="SCENE3D" : OBJECT_TYPE_HANDLE(1)=1 OBJECT_TYPE_NAME$(2)="BUTTON" : OBJECT_TYPE_HANDLE(2)=1 OBJECT_TYPE_NAME$(3)="EDIT" : OBJECT_TYPE_HANDLE(3)=1 OBJECT_TYPE_NAME$(4)="MEMO" : OBJECT_TYPE_HANDLE(4)=1 OBJECT_TYPE_NAME$(5)="COMBO" : OBJECT_TYPE_HANDLE(5)=3 OBJECT_TYPE_NAME$(6)="ALPHA" : OBJECT_TYPE_HANDLE(6)=2 OBJECT_TYPE_NAME$(7)="FORM" : OBJECT_TYPE_HANDLE(7)=7 OBJECT_TYPE_NAME$(8)="LIST" : OBJECT_TYPE_HANDLE(8)=3 OBJECT_TYPE_NAME$(9)="PICTURE" : OBJECT_TYPE_HANDLE(9)=2 OBJECT_TYPE_NAME$(10)="CHECK" : OBJECT_TYPE_HANDLE(10)=1 OBJECT_TYPE_NAME$(11)="OPTION" : OBJECT_TYPE_HANDLE(11)=1 OBJECT_TYPE_NAME$(12)="MAIN_MENU" : OBJECT_TYPE_HANDLE(12)=25 OBJECT_TYPE_NAME$(13)="SUB_MENU" : OBJECT_TYPE_HANDLE(13)=25 :' doit être associé à 'main_menu' pour être visible OBJECT_TYPE_NAME$(14)="SOUND" : OBJECT_TYPE_HANDLE(14)=25 OBJECT_TYPE_NAME$(15)="MOVIE" : OBJECT_TYPE_HANDLE(15)=1 OBJECT_TYPE_NAME$(16)="TRACK_BAR" : OBJECT_TYPE_HANDLE(16)=1 OBJECT_TYPE_NAME$(17)="OPEN_DIALOG" : OBJECT_TYPE_HANDLE(17)=25 OBJECT_TYPE_NAME$(18)="SAVE_DIALOG" : OBJECT_TYPE_HANDLE(18)=25 OBJECT_TYPE_NAME$(19)="SCROLL_BAR" : OBJECT_TYPE_HANDLE(19)=1 OBJECT_TYPE_NAME$(20)="PROGRESS_BAR" : OBJECT_TYPE_HANDLE(20)=1 OBJECT_TYPE_NAME$(21)="SPIN" : OBJECT_TYPE_HANDLE(21)=1 OBJECT_TYPE_NAME$(22)="GRID" : OBJECT_TYPE_HANDLE(22)=3 OBJECT_TYPE_NAME$(23)="CONTAINER" : OBJECT_TYPE_HANDLE(23)=1 OBJECT_TYPE_NAME$(24)="MEMO_RICH" : OBJECT_TYPE_HANDLE(24)=0 OBJECT_TYPE_NAME$(25)="_" : OBJECT_TYPE_HANDLE(25)=0 OBJECT_TYPE_NAME$(26)="DLIST" : OBJECT_TYPE_HANDLE(26)=24 OBJECT_TYPE_NAME$(27)="SCENE2D" : OBJECT_TYPE_HANDLE(27)=1 OBJECT_TYPE_NAME$(28)="TIMER" : OBJECT_TYPE_HANDLE(28)=24 OBJECT_TYPE_NAME$(29)="PANEL" : OBJECT_TYPE_HANDLE(29)=1 OBJECT_TYPE_NAME$(30)="_" : OBJECT_TYPE_HANDLE(30)=0 OBJECT_TYPE_NAME$(31)="MAIN_MENU_POP" : OBJECT_TYPE_HANDLE(31)=0 OBJECT_TYPE_NAME$(32)="CONTAINER_OPTION" : OBJECT_TYPE_HANDLE(32)=1 OBJECT_TYPE_NAME$(33)="OPEN_DIALOG_PIC" : OBJECT_TYPE_HANDLE(33)=25 OBJECT_TYPE_NAME$(34)="SAVE_DIALOG_PIC" : OBJECT_TYPE_HANDLE(34)=25 OBJECT_TYPE_NAME$(35)="SHAPE" : OBJECT_TYPE_HANDLE(35)=0 OBJECT_TYPE_NAME$(36)="HVIEWER" : OBJECT_TYPE_HANDLE(36)=1 OBJECT_TYPE_NAME$(37)="_" : OBJECT_TYPE_HANDLE(37)=0 OBJECT_TYPE_NAME$(38)="LED1" : OBJECT_TYPE_HANDLE(38)=0 OBJECT_TYPE_NAME$(39)="DIGIT1" : OBJECT_TYPE_HANDLE(39)=0 OBJECT_TYPE_NAME$(40)="SWITCH1" : OBJECT_TYPE_HANDLE(40)=0 OBJECT_TYPE_NAME$(41)="IMAGE" : OBJECT_TYPE_HANDLE(41)=8 :' Pourquoi 'image' est déplaçable? bug? OBJECT_TYPE_NAME$(42)="CONTAINER_TAB" : OBJECT_TYPE_HANDLE(42)=1 OBJECT_TYPE_NAME$(43)="TAB" : OBJECT_TYPE_HANDLE(43)=9 :' doit être associé à 'container_tab' pour être visible / Pourquoi 'tab' est déplaçable? bug? OBJECT_TYPE_NAME$(44)="_" : OBJECT_TYPE_HANDLE(44)=0 OBJECT_TYPE_NAME$(45)="_" : OBJECT_TYPE_HANDLE(45)=0 OBJECT_TYPE_NAME$(46)="SYNEDIT" : OBJECT_TYPE_HANDLE(46)=0 OBJECT_TYPE_NAME$(47)="CHART" : OBJECT_TYPE_HANDLE(47)=0 OBJECT_TYPE_NAME$(48)="_" : OBJECT_TYPE_HANDLE(48)=0 OBJECT_TYPE_NAME$(49)="_" : OBJECT_TYPE_HANDLE(49)=0 end_if ' select typ% case 0 : form obj% :' donne les mêmes résultats que le form 0 case 1 : scene3d obj% case 2 : button obj% case 3 : edit obj% case 4 : memo obj% case 5 : combo obj% case 6 : alpha obj% case 7 : form obj% case 8 : list obj% case 9 : picture obj% case 10: check obj% case 11: option obj% case 12: main_menu obj% case 13: sub_menu obj% case 14: sound obj% case 15: movie obj% case 16: track_bar obj% case 17: open_dialog obj% case 18: save_dialog obj% case 19: scroll_bar obj% case 20: progress_bar obj% case 21: spin obj% case 22: grid obj% case 23: container obj% case 24: memo_rich obj% case 25: ' case 26: dlist obj% case 27: scene2d obj% case 28: timer obj% case 29: panel obj% case 30: ' case 31: main_menu_pop obj% case 32: container_option obj% case 33: open_dialog_pic obj% case 34: save_dialog_pic obj% case 35: shape obj% case 36: hviewer obj% case 37: ' case 38: led1 obj% case 39: digit1 obj% case 40: switch1 obj% case 41: image obj% case 42: container_tab obj% case 43: tab obj% case 44: ' case 45: ' case 46: synedit obj% case 47: chart obj% case 48: ' case 49: ' end_select end_sub
' tester les évènements sub TEST_EVENT(nb%,obj%) if variable("EVENT_NAME$")=0 dim EVENT_NAME$(15) EVENT_NAME$(1)="ON_ACTIVATE" EVENT_NAME$(2)="ON_CHANGE" EVENT_NAME$(3)="ON_CLICK" EVENT_NAME$(4)="ON_CLOSE" EVENT_NAME$(5)="ON_DOUBLE_CLICK" EVENT_NAME$(6)="ON_KEY_DOWN" EVENT_NAME$(7)="ON_KEY_UP" EVENT_NAME$(8)="ON_MOUSE_DOWN" EVENT_NAME$(9)="ON_MOUSE_MOVE" EVENT_NAME$(10)="ON_MOUSE_UP" EVENT_NAME$(11)="ON_MOVE" EVENT_NAME$(12)="ON_RESIZE" EVENT_NAME$(13)="ON_SHOW" EVENT_NAME$(14)="ON_TIMER" EVENT_NAME$(15)="ON_USER_EVENT" if label("null_event")=0 then label null_event dim result dim check_event_nb end_if ' if nb%>0 result=1 select nb% case 1: check_event_nb=1 : on_activate obj%,null_event :' off_activate obj% case 2: check_event_nb=2 : on_change obj%,null_event :' off_change obj% case 3: check_event_nb=3 : on_click obj%,null_event :' off_click obj% case 4: check_event_nb=4 : on_close obj%,null_event :' off_close obj% case 5: check_event_nb=5 : on_double_click obj%,null_event :' off_double_click obj% case 6: check_event_nb=6 : on_key_down obj%,null_event :' off_key_down obj% case 7: check_event_nb=7 : on_key_up obj%,null_event :' off_key_up obj% case 8: check_event_nb=8 : on_mouse_down obj%,null_event :' off_mouse_down obj% case 9: check_event_nb=9 : on_mouse_move obj%,null_event :' off_mouse_move obj% case 10: check_event_nb=10 : on_mouse_up obj%,null_event :' off_mouse_up obj% case 11: check_event_nb=11 : on_move obj%,null_event :' off_move obj% case 12: check_event_nb=12 : on_resize obj%,null_event :' off_resize obj% case 13: check_event_nb=13 : on_show obj%,null_event :' off_show obj% :' NB:la commande 'off_show obj%' ne fonctionne pas sur un tab case 14: check_event_nb=14 : on_timer obj%,null_event :' timer_off obj% case 15: result=0 : check_event_nb=15 : on_user_event null_event :' off_user_event obj% :' impossible d'obtenir un erreur car pas d'objet associé à cet évènement, donc on renvoi 0 end_select end_if exit_sub ' null_event: return end_sub EDIT : réorganisé le code/corrigé un bug/ajout des objets connus jusqu'à la version V028i12
Dernière édition par silverman le Mer 15 Nov 2017 - 19:11, édité 3 fois | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: évènements et objets système : listage automatique Ven 19 Mai 2017 - 8:13 | |
| Si j'ai bien compris, ce code est un vérificateur d’événements par objet ? Le cas du timer (28) montre qu'il supporte On_Click A+ | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: évènements et objets système : listage automatique Ven 19 Mai 2017 - 11:59 | |
| - Jean Claude a écrit:
- Si j'ai bien compris, ce code est un vérificateur d’événements par objet ?
En effet, c'est une mise à jour du tableau présent dans l'aide. Le 'SPIN' par exemple, supporte l'évènement 'ON_CHANGE' alors que cela n'est pas encore signalé dans l'aide de panoramic. | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: évènements et objets système : listage automatique Mer 15 Nov 2017 - 14:33 | |
| | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: évènements et objets système : listage automatique Mer 15 Nov 2017 - 15:25 | |
| Bonjour à tous !
Merci Silverman pour ce tableau récapitulatif !
Bien pratique ! On peut le modifier quand on veut, sans attendre la mise à jour de l'aide "officielle".
Quant au cas du TIMER, comme dit Jean-Claude, je ne vois pas comment l'utiliser avec un ON_CLICK.
Encore merci et bonne continuation !
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: évènements et objets système : listage automatique Mer 15 Nov 2017 - 16:43 | |
| Merci Silverman pour cette mise à jour, Pour éviter à mes collègues Panoramiciens de planter le système: ce code fonctionne avec la version V028i12. Pourquoi cette précision...? car je l'ai testée avec la V09.27, et ça ne marche pas (normal, car il y a utilisation de nouvelles commande). J'ai perdu bêtement 1/4 d'heure à chercher ce qui n'allait pas. A+ | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: évènements et objets système : listage automatique Mer 15 Nov 2017 - 19:15 | |
| @jean-claude Je ne pensais pas que l'on pouvait encore utiliser des versions aussi anciennes de panoramic! Pb identifié, testé avec la V0927i5--->Tout est ok C'est corrigé | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: évènements et objets système : listage automatique Mer 15 Nov 2017 - 20:18 | |
| En fait j'utilise la V09.27 du 24/01/2017 car c'est la dernière version "régulière" dont l'éditeur fonctionne parfaitement.
Je suis conscient qu'il lui manque des nouveautés, mais pour ce que je fais actuellement elle me suffit.
J'ai, sur mon bureau, la V09.28i12 car c'est la dernière version instantanée (donc elle bénéficie des nouveautés), mais l'éditeur n'est pas top à cause du délai d'attente d’exécution du code. Néanmoins, elle me sert à faire les tests des codes publiés sur le forum, mais ce n'est pas encore un reflex. Je sais que ça va s'arranger dans les temps futurs, mais tant que mon code peut-être développé avec la V09.27, je préfère la version régulière.
Par contre je ne possède pas la V0927i5 dont tu parles, si tu pouvais me la déposer sur ton webdev, disons 24h (car ce soir je dois m'absenter), pour que je la récupère, se serais sympa. J'aimerai bien l'explorer...
A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: évènements et objets système : listage automatique Jeu 16 Nov 2017 - 9:15 | |
| @Silverman, Finalement laisse tomber, j'ai regardé les évolutions des versions dans la rubrique "Ce qui est en cours". Les avancées les plus importantes sont plutôt dans les versions 09.28... , donc je n'ai pas besoin des versions intermédiaires.
A+ | |
| | | Contenu sponsorisé
| Sujet: Re: évènements et objets système : listage automatique | |
| |
| | | | évènements et objets système : listage automatique | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |