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 |
|
|
| Au secours : TERMINATE ne m'aime plus! | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Au secours : TERMINATE ne m'aime plus! Mer 3 Déc 2014 - 16:23 | |
| Salut tout le monde. J’utilise la fonction WB_Create de la KGF.dll dernière version : KGF.dll V3.94 du 01/12/2014 J’ai un soucis avec la commande Panoramic TERMINATE - Citation :
- Cette commande TERMINATE arrête définitivement l'exécution du programme et libère la mémoire. Tous les objets sont détruits. Le programme n'existe plus en mémoire.
Ça , c’est la théorie, mais la pratique , c’est autre chose : PANORAMIC.exe a cessé de fonctionner … et je dois tuer ce processus qui ne répond plus (pourtant je suis un homme paisible, pas un tueur !!!) Voici un code exemple : de-REMer la ligne 20 ( j’invente des nouveaux verbes !) pour voir. Cliquez sur le bouton Quitter : ça ne TERMINATE pas le programme. - Code:
-
rem ============================================================================ label quitter dim res%, WB1%, WB2%, url$
dll_on "C:\Users\acer\Desktop/KGF.dll" button 1 : top 1,30 : left 1,250 : caption 1,"Quitter" : on_click 1,Quitter CreerWB() end rem ============================================================================ SUB creerWB() WB1% = dll_call1("WB_Create",handle(0)) res% = dll_call5("WB_Locate",WB1%,100,100,400,300) url$ = "http://panoramic.1fr1.net/" res% = dll_call2("WB_Url",WB1%,adr(url$)) END_SUB rem ============================================================================
Quitter: res% = dll_call1("WB_Delete",WB1%) ' terminate return rem ============================================================================
Je pense que TERMINATE n'apprécie pas trop les DLLs | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Déc 2014 - 16:44 | |
| Et si tu mets un petit délai entre la suppression et le terminate ?... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Déc 2014 - 16:51 | |
| Le code telque tu nous l' a posté me renvoie ceci lors du clic sur le bouton "Quitter" : il y a déjà un problème. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Déc 2014 - 17:10 | |
| Je viens de prendre la dernière version de KGF et pfff... plus de problème... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Mer 3 Déc 2014 - 18:22 | |
| - ygeronimi a écrit:
- Je viens de prendre la dernière version de KGF et pfff... plus de problème...
Moi aussi, j'utilise la dernière version de KCF et pfff... il y a un problème... PANORAMIC.exe a cessé de fonctionner … | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 3 Déc 2014 - 18:29 | |
| - Papydall a écrit:
- Moi aussi, j'utilise la dernière version de KCF
Si tu utilise KCF, il est normal que tu es un problème... ceci dit, et plaisanterie mise à part, essaies de redémarrer l' éditeur avec toutes les vérifs de "processus" habituelles. puis remplace le / par un \ dans l' adresse de KGF. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Mer 3 Déc 2014 - 18:53 | |
| Je viens d'essayer ton code, Papydall. J'y ai fait une seule modif: j'ai adapté le chemin vers KGF.dll à ma configuration. Et ça marche sans aucun problème. Ma version de KGF.dll est: KGF.dll V3.84 du 01/12/2014 Avec ça, tu ne devrais avoir aucun problème. Je l'utilise quotidiennement.
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 0:23 | |
| J’ai bien écrit que TERMINATE utilisée avec KGF.dll ne m’aime plus ! Ce simple - Code:
-
dll_on "C:\Users\acer\Desktop\KGF.dll" message "ok" terminate
Provoque le plantage ! J’ai testé avec d’autres DLL et le programme se termine parfaitement. Suis-je la seule et unique victime de ce phénomène ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 0:41 | |
| Regarde cette version, légèrement "complétée" de ton code: - Code:
-
dim version$, res% version$ = string$(25," ") dll_on "KGF.dll" res% = dll_call1("KGFdllVersion",adr(version$)) hide 0 message "ok "+str$(res%)+" = " + version$ show 0 terminate
Voici ce que ça donne: [img] [/img] Et la validation du message arrête le programme proprement, sans plantage... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 1:00 | |
| Ich bin betrübt, das geht nicht! Chez moi, le TERMINATE c'est le plantage ! Je vais oublier un moment ce TERMINATE | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 1:07 | |
| Alors, fais comme moi dans Synedit_Editor: - Code:
-
res% = dll_call1("KillProcessByHandle",handle(0)) à la place de TERMINATE... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 1:21 | |
| Pour ce KillProcessByHandle : ça marche et plus de plantage. Grande question pour moi (un super novice) qui demande une petite réponse du super Klaus : Après avoir créer un browser par WB_Create et le localiser par WB_Locate est-il possible de définir sur cet emplacement un BUTTON cliquable par exemple pour gérer un événement quelconque? - Code:
-
dim res%,WB% dll_on "C:\Users\acer\Desktop/KGF.dll" WB% = dll_call1("WB_Create",handle(0)) res% = dll_call5("WB_Locate",WB%,50,50,400,300) ' Ici je veux définir un BUTTON
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 1:49 | |
| Qu'est-ce que tu veux faire exactement ?
Avec un évènement ON_CLICK du bouton, provoquer des réactions du WB ? Pas de problème: utilise PrinterManager et PrinterFunction pour cela.
Tu veux être averti sur des évènements qui se produisent à l'intérieur du WB ? Alors il faut faire autrement. Regarde les derniers rajouts concernant les nouvelles fonctions WB_xxx. Elles permettent de faire cela.
Sinon, décris plus précisément ce qu'il te faut... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 2:14 | |
| Je dispose de plusieurs fichiers Flash (extension SWF). Ce sont des animations très intéressantes (Math, Physique, Electronique, etc.). Je désire en faire une application en Panoramic (avec KGF.dll, …) L’exemple suivant va te montrer la chose. Même si tu ne disposes pas du fichier à la ligne 14, le programme doit se dérouler en affichant simplement un petit carreau sur la page. J’ai défini le bouton QUITTER sur FORM 0. Mon souhait est le définir sur la page de l’animation. - Code:
-
rem ============================================================================ rem Intégrer un objet Flash dans un objet HTML rem ============================================================================
label fin dim Id_Form,jeu$ ,WB% , termine% full_space 0 Id_Form = 10 : form Id_Form width Id_Form,width(0)-100 : height Id_Form,height(0)-120 : top Id_Form, 100 : left Id_Form,50 button 20 : left 20,width(0)/2-200 : top 20,20 : width 20, 200 : caption 20,"Q U I T T E R" font_bold 20: font_size 20,14 : on_click 20,fin
dll_on "C:\Users\acer\Desktop/kgf.dll" : ' Adapter le chemin jeu$ = "C:\Users\acer\Desktop\SWF\Math/Aire4_Triangle1.swf" : ' Fichier Flash
caption Id_Form,jeu$ Jeu_Flash(Id_Form,jeu$,width(10),height(10)) end rem ============================================================================ ' Id_Form : identificateur du Form ' Jeu$ est le nom du fichier Flash d'extension SWF ' Largeur et Hauteur sont les dimensions de la fenêtre de vision SUB Jeu_Flash(Id_Form,jeu$,largeur,hauteur) dim_local hnd%, res%, url$,q$ q$ = chr$(34) file_open_write 9999,"flash.html" ' L'animation flash ci-dessous se résume en un petit code, c'est la simplcité même de l'html5. file_writeln 9999,"<embed src='"+jeu$+"'"+q$+" width="+q$+str$(largeur)+q$+" height="+q$+str$(hauteur)+q$+">" file_close 9999
hnd%=handle(Id_Form) url$="file://"+dir_current$+"/flash.html" WB%=dll_call1("WBCreate",hnd%) res%=dll_call4("WBLocate",0,0,largeur,hauteur) res%=dll_call1("WBUrl",adr(url$)) file_delete "flash.html" END_SUB rem ============================================================================ fin: termine% = dll_call1("KillProcessByHandle",handle(0)) return rem ============================================================================
REMARQUE : Le bouton n'est pas nécessairement pour terminer le programme. Il pourrait être pour charger une autre animation etc... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 2:47 | |
| Tu ne peux pas injecter un bouton dans l'animation flash ni dans le WB. Mais tu peux le placer simplement à-côté du premier bouton (solution 1) ou décaler un peu le WB vers le bas et coller le bouton dans la fenêtre 10 tout en haut (solution 2). Voici ton code aménagé ainsi, avec les deux solutions identifiées par des commentaires (actuellement, la solution 2 est active): - Code:
-
rem ============================================================================ rem Intégrer un objet Flash dans un objet HTML rem ============================================================================
label fin, autre dim Id_Form,jeu$ ,WB% , termine% full_space 0 Id_Form = 10 : form Id_Form width Id_Form,width(0)-100 : height Id_Form,height(0)-120 : top Id_Form, 100 : left Id_Form,50 button 20 : left 20,width(0)/2-200 : top 20,20 : width 20, 200 : caption 20,"Q U I T T E R" font_bold 20: font_size 20,14 : on_click 20,fin ' ======== Klaus: solution 1: (2 lignes) ' button 30 : left 30,width(0)/2 : top 30,20 : width 30, 200 : caption 30,"A U T R E" ' font_bold 30: font_size 30,14 : on_click 30,autre
dll_on "kgf.dll" : ' Adapter le chemin jeu$ = "Aire4_Triangle1.swf" : ' Fichier Flash
caption Id_Form,jeu$ Jeu_Flash(Id_Form,jeu$,width(10),height(10)) end rem ============================================================================ ' Id_Form : identificateur du Form ' Jeu$ est le nom du fichier Flash d'extension SWF ' Largeur et Hauteur sont les dimensions de la fenêtre de vision SUB Jeu_Flash(Id_Form,jeu$,largeur,hauteur) dim_local hnd%, res%, url$,q$ ' ======== Klaus: solution 2: (2 lignes) button 30 : left 30,width(0)/2 : top 30,0 : width 30, 200 : caption 30,"A U T R E" font_bold 30: font_size 30,14 : on_click 30,autre : parent 30,10 q$ = chr$(34) file_open_write 9999,"flash.html" ' L'animation flash ci-dessous se résume en un petit code, c'est la simplcité même de l'html5. file_writeln 9999,"<embed src='"+jeu$+"'"+q$+" width="+q$+str$(largeur)+q$+" height="+q$+str$(hauteur)+q$+">" file_close 9999
hnd%=handle(Id_Form) url$="file://"+dir_current$+"/flash.html" WB%=dll_call1("WBCreate",hnd%) ' ======== Klaus: solution 1: (1 ligne) ' res%=dll_call4("WBLocate",0,0,largeur,hauteur-30) ' ======== Klaus: solution 3: (1 ligne) res%=dll_call4("WBLocate",0,30,largeur,hauteur-30) res%=dll_call1("WBUrl",adr(url$)) file_delete "flash.html" END_SUB rem ============================================================================ fin: termine% = dll_call1("KillProcessByHandle",handle(0)) return rem ============================================================================ autre: message "charger ici une autre animation flash..." to_foreground 10 return rem ============================================================================
Note: j'ai changé les deux chemins d'accès... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! Jeu 4 Déc 2014 - 3:11 | |
| Merci maître Klaus. J'adopte la solution 2. | |
| | | Contenu sponsorisé
| Sujet: Re: Au secours : TERMINATE ne m'aime plus! | |
| |
| | | | Au secours : TERMINATE ne m'aime plus! | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |