FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Compilateur FBPano
par jean_debord Aujourd'hui à 11:07

» Documentation de KGF
par Klaus Hier à 22:52

» Zoom sur une portion d'écran
par JL35 Hier à 21:51

» KGF_dll - nouvelles versions
par Klaus Hier à 21:31

» double guillemets "" dans un EDIT
par pascal10000 Hier à 21:08

» Recherche d'une expression dans un source
par Marc 37 Hier à 13:08

» Tracer une grille n'importe où sur l'écran
par JL35 Dim 19 Nov 2017 - 22:14

» TourD Version 2
par Klaus Sam 18 Nov 2017 - 23:58

» La métamatière et le peuple
par JL35 Ven 17 Nov 2017 - 21:18

» Capture d'une zone de l'écran total
par JL35 Ven 17 Nov 2017 - 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 17 Nov 2017 - 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 V2.69 du 20/12/2013: améliorations pour fichiers chaînés

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

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

MessageSujet: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   Ven 20 Déc 2013 - 22: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 Jeu 26 Déc 2013 - 0:20, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 25 Déc 2013 - 21: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 :
" />
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   Jeu 26 Déc 2013 - 0: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

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Jeu 26 Déc 2013 - 12:26

Mea culpa... Embarassed 

PS : J'essaie de refaire mon FTP avec le barre d'outil pour le compilateur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Déc 2013 - 15: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%)


 scratch 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  pale de Panoramic quand je la suis )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   Sam 28 Déc 2013 - 17: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Déc 2013 - 17:45

Ok.

Je vais un peu te compliquer la tâche... Laughing 
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 ?... Twisted Evil 

Je sais...c' est vicieux... Twisted Evil
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   Sam 28 Déc 2013 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 28 Déc 2013 - 18: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   Dim 29 Déc 2013 - 3: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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 29 Déc 2013 - 14:05

Je vois le principe... Shocked 
Sauf que, j' évite les sub pour le compilateur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: V2.69 du 20/12/2013: améliorations pour fichiers chaînés   

Revenir en haut Aller en bas
 
V2.69 du 20/12/2013: améliorations pour fichiers chaînés
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: