Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 14 Mar 2015 - 10:25 | |
| @ Jack,
Le plantage, curieusement se produit lorsque l' on cherche à ouvrir un projet avec plus d' onglets que les deux de base.
Les "runtime error" en principe, arrivent à la fermeture par la croix. J' avais réussi à éliminer ces messages dans PPE Vs2 mais là ils sont récalcitrant.
Je vais regarder ces lignes...
Qui c' est madExept | |
|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 14 Mar 2015 - 15:48 | |
| Tu voulais un code simple, en voilà un. Je n' ai même pas eu à implémenté les deux fonctions de création et ouverture de projet. Il suffit de créer quelques onglets par le bouton "Add_F" et de suprimer par "Delete_P" et si cela ne plante pas là, d' essayer de recréer un onglet par "Add_F". Le code affiche ce qui devrait être la dlist de gestion des onglets dans un form à droite : - Code:
-
' INITIALISATION DE KGF ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
dim kgf$ : kgf$=dir_current$+"\KGF.dll" : dll_on kgf$
' DECLARATION DES VARIABLES ++++++++++++++++++++++++++++++++++++++++++++++++++++
dim no%,x%,res%,hnd%,nclic%,nchange% dim Tdlist%,MM%,SM%(10),pan%,Tab% dim f2%,mem%
' DECLARATION DES LABELS +++++++++++++++++++++++++++++++++++++++++++++++++++++++
label clic,change
' INTERFACE ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' form 0 height 0,450 : width 0,600 top 0,(screen_y-height(0))/2 : left 0,(screen_x-width(0))/2
' main menu no%=no%+1 : MM%=no% main_menu no%
for x%=1 to 10 : no%=no%+1 : SM%(x%)=no% : next x% sub_menu SM%(1):parent SM%(1),MM% : caption SM%(1),"Add P" : On_click SM%(1),clic sub_menu SM%(2):parent SM%(2),MM% : caption SM%(2),"Open P" : On_click SM%(2),clic sub_menu SM%(3):parent SM%(3),MM% : caption SM%(3),"Close P" : On_click SM%(3),clic sub_menu SM%(4):parent SM%(4),MM% : caption SM%(4),"Delete P" : On_click SM%(4),clic sub_menu SM%(5):parent SM%(5),MM% : caption SM%(5),"Add F" : On_click SM%(5),clic sub_menu SM%(6):parent SM%(6),MM% : caption SM%(6),"Open F" : On_click SM%(6),clic sub_menu SM%(7):parent SM%(7),MM% : caption SM%(7),"Close F" : On_click SM%(7),clic sub_menu SM%(8):parent SM%(8),MM% : caption SM%(8),"Delete F" : On_click SM%(8),clic
' panel support du tableur no%=no%+1 : pan%=no% Panel pan% : full_space pan% hnd%=handle(pan%)
' tableur Tab% = dll_call1("CreateTabObject",hnd%) res% = dll_call5("TabObjectGeometry",Tab%,5,5,width(pan%)-10,height(pan%)-36) res% = dll_call6("TabObjectFunction",Tab%,5,0,2,0,0)
' form 2 no%=no%+1 : f2%=no% form f2% : height f2%,450 : width f2%, 250 top f2%,top(0) : left f2%,left(0)+width(0)+10
' dlist de gestion des onglets no%=no%+1 : Tdlist%=no% list Tdlist% : parent Tdlist%,f2% : full_space Tdlist% end
' MENU +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' >>>> clic clic: nclic%=number_click if nclic%=SM%(1):Add_P() :end_if if nclic%=SM%(2):Open_P() :end_if if nclic%=SM%(3):Close_P() :end_if if nclic%=SM%(4):Delete_P():end_if if nclic%=SM%(5):Add_F() :end_if if nclic%=SM%(6):Open_F() :end_if if nclic%=SM%(7):Close_F() :end_if if nclic%=SM%(8):Delete_F():end_if return
' >>>> change change: return
' FONCTIONS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
sub Add_P() end_sub
sub Open_P() end_sub
' fermeture du projet en cours sub Close_P() dim_local i% if count(Tdlist%)>0 for i%=1 to count(Tdlist%) ' selection de l' onglet n°1 res%= dll_call6("TabObjectFunction",Tab%,3,1,0,0,0) ' fonction de supression d' un onglet delOnglet(1) next i% end_if end_sub
' suppression du projet en cours sub Delete_P() dim_local i% if count(Tdlist%)>0 for i%=1 to count(Tdlist%) ' selection de l' onglet n°1 res%= dll_call6("TabObjectFunction",Tab%,3,1,0,0,0) ' fonction de supression d' un onglet delOnglet(1) next i% end_if end_sub
' ajouter un fichier sub Add_F() dim_local num% num%=count(Tdlist%)+1 addOnglet(1,"Mon Fichier "+str$(num%)) end_sub
' ouvrir un fichier sub Open_F() dim_local num% num%=count(Tdlist%)+1 addOnglet(1,"Mon Fichier "+str$(num%)) end_sub
' fermer un fichier sub Close_F() dim_local O% if count(Tdlist%)>0 O%= dll_call6("TabObjectFunction",Tab%,3,0,0,0,0) delOnglet(O%) end_if end_sub
' supression d' un fichier sub Delete_F() dim_local O% if count(Tdlist%)>0 O%= dll_call6("TabObjectFunction",Tab%,3,0,0,0,0) delOnglet(O%) end_if end_sub
' ajout d' un onglet sub addOnglet(i%,T$) dim_local O%,name$ item_add Tdlist%,str$(i%)+"|"+T$ O% =count(Tdlist%) name$=T$ res% = dll_call2("AddTabObjectTab",Tab%,adr(name$)) end_sub
' suppression d' un onglet sub delOnglet(i%) res% = dll_call6("TabObjectFunction",Tab%,9,i%,0,0,0) item_delete Tdlist%,i% end_sub | |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Jack ! ca veut dire quoi... Sam 14 Mar 2015 - 16:35 | |
| En faisant 3 Add_F et un Delete_P, j'ai obtenu un access violation suivi quelques secondes plus tard par un Runtime error 216. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Jack ! ca veut dire quoi... Sam 14 Mar 2015 - 16:35 | |
| Comme je l'ai déjà dit, Ygeronimi, c'est un problème de KGF.dll et non Panoramic. Jack ne pourra rien y faire - c'est un bug qui vient de KGF.dll et je suis en train de chercher une correction.
Merci pour ce code simplifié - se sera moins lourd à mettre en oeuvre.
En attendant, pour passer à un nouveau projet, s'il te plait relance ton éditeur !
| |
|
Contenu sponsorisé
| Sujet: Re: Jack ! ca veut dire quoi... | |
| |
|