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 |
|
|
| V2.69 du 20/12/2013: améliorations pour fichiers chaînés | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: V2.69 du 20/12/2013: améliorations pour fichiers chaînés Ven 20 Déc 2013 - 20:59 | |
| Nouvelle version: KGF.dll V2.68 du 20/12/2013
Nouveautés: - diverses améliorations techniques dans les fonctions de gestion des fichiers chaînés - correction d'une anomalie dans cfInfoFile - ajout d'un nouveau code "cflist" pour la fonction cfInfoFile
Modules modifiés: KGF.dll KGF_SUB.bas KGF.chm KGF.doc KGF.pdf
La doc et les sources sont à jour.
La nouveauté pour la fonction cfInfoFile est l'ajout du nouveau code opération "cflist". Ce code fonctionne différemment des autres. Le premier paramètre de la fonction sera ignoré (peut être passé par comme zéro), le second reste le code opératoire, et le troisième, au lieu d'être une adresse d'une variable chaîne de caractères, doit être le handle d'un objet memo. Le contenui de ce mémo sera alors remplacé par une liste des fichiers chaînés ouverts, un fichier par ligne, selon le format: n:device:\chemin...\fichier.extension La valeur n peut varier entre 0 et 19 et représente l'identifiant interne du fichier, pour la DLL.
Dernière édition par Klaus le Mer 25 Déc 2013 - 22:20, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 25 Déc 2013 - 19:24 | |
| J' ai écris ceci : - Code:
-
dim KGF$ dim res%,cible%,edit%,side% KGF$="C:\Users\Yannick\Desktop\New FTP\KGF.dll"
label Close0
dll_on KGF$
cible%=0 edit%=1 side%=0
edit 1 top 1,-300 left 1,-300
res%=dll_call3("CreateToolbar",handle(cible%),handle(edit%),side%)
On_close 0,Close0 end
Close0: dll_off return avec la dernière mouture de la dll et Panoramic_Editor 25i9. Résultat : " /> | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés Mer 25 Déc 2013 - 22:22 | |
| Regarde comment cette fonction est gérée dans KGF_SUB.bas. En occurence, tu n'as pas géré le ON_CHANGE sur le EDIT, par exemple. Essaie de faire KGF_initialize(KGF$) puis utilise la procédure CreateToolbar(cible%,edit%,side%) pour créer la toolbar, puis crée le sousprogramme click_toolbar pour gérer les évènements sur la toolbar. En voici un exemple: - Code:
-
click_toolbar: if text$(1)="-1" adapter_container() else message "Bouton cliqué: "+text$(1) end_if return
Ce code est extrait du programme de démo (fonctionnel) mis au point par et pour Bignono: - Code:
-
' bignono_toolbar.bas
label click_toolbar
dim res%, icon$, after%, hint$
' ============================================================== ' début des paramètres de confiduration de la Toolbar dim system$ system$ = "XP" ' system$ = "W7" dim position_toolbar% : position_toolbar% = 1 : ' 0,1,2,3 dim icon_size% : icon_size% = 32 : ' 16 ou 32 ' fin des paramètres de confiduration de la Toolbar ' ==============================================================
select position_toolbar%
case 0 if system$="XP" ' ************* XP ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(766,892) delta_x=34 delta_y = 8 ' Toolbar: (4,30)->(71,896) dim chg_hor% : chg_hor% = 10 dim chg_ver% : chg_ver% = (icon_size%-16)+60 else ' ************* W7 ' pour side%=0 ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(762,884) delta_x=38 delta_y = 16 ' Toolbar: (8,30)->(71,892) dim chg_hor% : chg_hor% = 16 dim chg_ver% : chg_ver% = (icon_size%-16)+76 end_if case 1 if system$="XP" ' ************* XP ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(766,892) delta_x=34 delta_y = 8 ' Toolbar: (4,30)->(796,47) dim chg_hor% : chg_hor% = (icon_size%-16) + 40 dim chg_ver% : chg_ver% = 36 else ' ************* W7 ' pour side%=1 ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(762,884) delta_x=38 delta_y = 16 ' Toolbar: (8,30)->(792,51) dim chg_hor% : chg_hor% = (icon_size%-16)+48 dim chg_ver% : chg_ver% = 38 end_if case 2 if system$="XP" ' ************* XP ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(766,892) delta_x=34 delta_y = 8 ' Toolbar: (4,756)->(797,896) dim chg_hor% : chg_hor% = 8 dim chg_ver% : chg_ver% = (icon_size%-16)+60 else ' ************* W7 ' pour side%=2 ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(762,884) delta_x=38 delta_y = 16 ' Toolbar: (8,752)->(793,892) dim chg_hor% : chg_hor% = 16 dim chg_ver% : chg_ver% = (icon_size%-16)+68 end_if case 3 if system$="XP" ' ************* XP ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(766,892) delta_x=34 delta_y = 8 ' Toolbar: (854,30)->(796,897) dim chg_hor% : chg_hor% = (icon_size%-16) + 34 dim chg_ver% : chg_ver% = 36 else ' ************* W7 ' pour side%=3 ' Window: (0,0) ->(800,900) ' Client: (0,0) ->(762,884) delta_x=38 delta_y = 16 ' Toolbar: (850,30)->(792,893) dim chg_hor% : chg_hor% = (icon_size%-16)+42 dim chg_ver% : chg_ver% = 44 end_if end_select
dll_on "KGF.dll"
edit 1 : hide 1
on_change 1,click_toolbar
container 10 : caption 10,"Espace utilisable"
' ============================================================== ' res% = dll_call4("CreateToolbar",handle(cible%),handle(edit%),handle(panel%),side%) ' ============================================================== res% = dll_call4("CreateToolbar",handle(0),handle(1),handle(10),position_toolbar%)
' ============================================================== ' res% = dll_call4("ModifyToolbar",action%,p1%,p2%,p3%) ' ============================================================== res% = dll_call4("ModifyToolbar",1,255,255,255) : ' blanc res% = dll_call4("ModifyToolbar",7,icon_size%,0,0) : ' icones 32 x 32 height 0,800 : width 0, width(0) + 300 adapter_container() res% = dll_call4("ModifyToolbar",8,1,0,0) res% = dll_call4("ModifyToolbar",2,0,0,0) : ' ajuster la toolbar à la largeur du form ' si side%=0 (en haut) ou side%=2 (en bas) ' ajuster la toolbar à la hauteur du form ' si side%=1 (à gauche) ou side%=3 (à droite) ' ============================================================== ' res% = dll_call4("AddButtonToToolbar",id%,after%,adr(hint$),adr(icon$)) ' ============================================================== hint$ = "afficher la photo" icon$ = "KGF_1" res% = dll_call4("AddButtonToToolbar",1,0,adr(hint$),adr(icon$)) hint$ = "prendre une photo" icon$ = "KGF_2" after% = 0-1 res% = dll_call4("AddButtonToToolbar",2,after%,adr(hint$),adr(icon$)) hint$ = "aller à gauche" icon$ = "KGF_3" res% = dll_call4("AddButtonToToolbar",3,after%,adr(hint$),adr(icon$)) hint$ = "avancer" icon$ = "KGF_4" res% = dll_call4("AddButtonToToolbar",4,after%,adr(hint$),adr(icon$)) hint$ = "aller à droite" icon$ = "KGF_5" res% = dll_call4("AddButtonToToolbar",5,after%,adr(hint$),adr(icon$)) hint$ = "reculer" icon$ = "KGF_6" res% = dll_call4("AddButtonToToolbar",6,after%,adr(hint$),adr(icon$)) hint$ = "filmer" icon$ = "KGF_7" res% = dll_call4("AddButtonToToolbar",7,after%,adr(hint$),adr(icon$)) hint$ = "grossir" icon$ = "KGF_8" res% = dll_call4("AddButtonToToolbar",8,after%,adr(hint$),adr(icon$)) hint$ = "réduire" icon$ = "KGF_9" res% = dll_call4("AddButtonToToolbar",9,after%,adr(hint$),adr(icon$)) hint$ = "police" icon$ = " " : ' "KGF_10" res% = dll_call4("AddButtonToToolbar",10,after%,adr(hint$),adr(icon$)) hint$ = "style" icon$ = "KGF_11" res% = dll_call4("AddButtonToToolbar",11,after%,adr(hint$),adr(icon$)) hint$ = "aligner à gauche" icon$ = "KGF_12" res% = dll_call4("AddButtonToToolbar",12,after%,adr(hint$),adr(icon$)) hint$ = "centrer" icon$ = "KGF_13" res% = dll_call4("AddButtonToToolbar",13,after%,adr(hint$),adr(icon$)) hint$ = "aligner à droite" icon$ = "KGF_14" res% = dll_call4("AddButtonToToolbar",14,after%,adr(hint$),adr(icon$)) hint$ = "Majuscules/Minuscules" icon$ = "KGF_15" res% = dll_call4("AddButtonToToolbar",15,after%,adr(hint$),adr(icon$)) hint$ = "interdire" icon$ = "KGF_16" res% = dll_call4("AddButtonToToolbar",16,after%,adr(hint$),adr(icon$)) hint$ = "autoriser" icon$ = "KGF_17" res% = dll_call4("AddButtonToToolbar",17,after%,adr(hint$),adr(icon$)) hint$ = "ajouter" icon$ = "KGF_300" after% = 3 res% = dll_call4("AddButtonToToolbar",18,after%,adr(hint$),adr(icon$))
' res% = dll_call4("ModifyToolbar",8,1,0,0) END
sub adapter_container() select position_toolbar% case 0 top 10,icon_size%+10 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 1 left 10,icon_size%+12 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 2 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% case 3 width 10,width(0)-chg_hor% height 10,height(0)- chg_ver% end_select end_sub
click_toolbar: if text$(1)="-1" adapter_container() else message "Bouton cliqué: "+text$(1) end_if return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 26 Déc 2013 - 10:26 | |
| Mea culpa... PS : J'essaie de refaire mon FTP avec le barre d'outil pour le compilateur. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 28 Déc 2013 - 13:04 | |
| J' ai un petit souci... La doc dit : res% = dll_call3("CreateToolbar",handle(cible%),handle(edit%),side%)Ton exemple pour bignono : res% = dll_call4("CreateToolbar",handle(0),handle(1),handle(10),position_toolbar%) Suis je obligé d' avoir un container ?...La doc est elle juste ?...( je pense que la doc à un souci car j' ai droit à un arrêt violent de Panoramic quand je la suis ) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés Sam 28 Déc 2013 - 15:38 | |
| Oui, la syntaxe - Code:
-
res% = dll_call4("CreateToolbar",handle(0),handle(1),handle(10),position_toolbar%) est la bonne. Et effectivement, la doc n'a pas encore suivi, car s'est en cours de mise au point, avec l'aide de Bignono. Le 3ème paramètre (ici handle(10) ) donne le handle d'un panel ou container qui est censé occuper l'espace restant de la fenêtre. Ainsi, on peut y placer les objets au lieu de les mettre directement dans la form, évitant ainsi tout conflit avec la toolbar elle-même. Actuellement, le dimensionnement de ce panel ou container est fait dans le programme PAnoramic lui-même. Mais à terme, cela sera déplacé dans la DLL qui va alors redimensionner le panel ou le container de façon automatique, sans qu'on ait besoin d'intervenir. Tu as en fait une version intermédiaire servant à la mise au point du mécanisme de positionnement. Mais les autres fonctions sont inchangées, et les boutons de la toolbar réagiront normalement. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 28 Déc 2013 - 15:45 | |
| Ok. Je vais un peu te compliquer la tâche... Actuellement la dll gère un "Container" d' origine. Mais que ce passe t il, au niveau du redimensionnement, si chaque bouton de la toolbar donne accès à son propre container ?... Je sais...c' est vicieux... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés Sam 28 Déc 2013 - 16:24 | |
| Je ne comprends pas ta question. Un bouton de la toolbar provoque un évènement ON_CHANGE dans le EDIT associé à la toolbar, et dans la routine évènement, on effectue le traitement associé au numéro du bouton qui est retourné dans le EDIT. Un bouton ne peut donc pas donner accès à un container, seulement à un morceau de code qui correspond à une routine évèmenent de ce bouton.
Bien sûr, dans une telle routine, tu peux créer ou afficher un container. Il devra avoir comme parent le container géré par la DLL; et viendra se positionner là où tu le placeras, dans ce container. Ou alors, la routine évènement ouvre une nouvelle form, et tu es alors entièrement libre de sa gestion. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 28 Déc 2013 - 16:42 | |
| Donc, si je suis bien, tout les objets ne sont plus à déclarer sur le Form mais dans le container. Si mon bouton affiche un autre container, je dois gérer ses dimensions et re-dimensions en parallèle. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés Dim 29 Déc 2013 - 1:19 | |
| Effectivement. A supposer que le container géré par la toolbar est l'objet 10, tu peur faire ainsi: - Code:
-
dim mon_container% mon_container% = 17 : ' juste un exemple container mon_container% top mon_container%, top(10) left mon_container%, left(10) width mon_container%, width(10) height mon_container%, height(10) hide 10 show mon_container%
Tu vois le principe ? Place les 4 lignes top, left, width et height dans une SUB, et ce sera simple. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 29 Déc 2013 - 12:05 | |
| Je vois le principe... Sauf que, j' évite les sub pour le compilateur. | |
| | | Contenu sponsorisé
| Sujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés | |
| |
| | | | V2.69 du 20/12/2013: améliorations pour fichiers chaînés | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |