FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» trop de fichiers en cours
KGF_dll - nouvelles versions - Page 14 Emptypar lepetitmarocain Aujourd'hui à 10:32

» Bataille navale SM
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
KGF_dll - nouvelles versions - Page 14 Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
KGF_dll - nouvelles versions - Page 14 Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
KGF_dll - nouvelles versions - Page 14 Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
KGF_dll - nouvelles versions - Page 14 Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_dll - nouvelles versions - Page 14 Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
KGF_dll - nouvelles versions - Page 14 Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
KGF_dll - nouvelles versions - Page 14 Emptypar leclode Dim 21 Avr 2024 - 18:09

» 2D_fill_color(résolu)
KGF_dll - nouvelles versions - Page 14 Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
KGF_dll - nouvelles versions - Page 14 Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
KGF_dll - nouvelles versions - Page 14 Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
KGF_dll - nouvelles versions - Page 14 Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier

 

 KGF_dll - nouvelles versions

Aller en bas 
+6
papydall
Marc
jean_debord
Minibug
JP06
Klaus
10 participants
Aller à la page : Précédent  1 ... 8 ... 12, 13, 14
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyJeu 22 Fév 2024 - 12:33

KGF.dll V10.01 du 22/02/2024

Nouveautés:
- KGFGrid; nouvelles fonctions: SetKGFGridDefaultFixedCellFont et SetKGFGridDefaultFixedCellAttributes

Modules modifiés:
KGF.dll

La doc est inchangée - ça viendra prochainement.

Syntaxe:
Code:
res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(police$),taille%,couleur%)
res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,gras%,italique%,souligne%,barre%)

Cette version est en principe complète.

On peut gérer correctement des colonnes ou des lignes fixes.
Pas les deux en même temps - cela n'aurait pas de sens, et c'est bloqué par la DLL.
Le type des cellules dans les lignes ou colonnes bloquées doit être de type texte - ce sont juste des libellés.
On peut choisir la couleur par défaut des cellules dixes ainsi que la police avec ses attributs.

Voici le programme de démo, auquel j'ai ajouté un mémo affichant des instructions et informations suivant la situation.
Code:
' prototype_KGFGrid.bas

label gauche, haut, sgauche, shaut

dim res%, KG%, r%, c%, s$

dll_on "KGF.dll"

full_space 0
button 1 : top 1,10 : left 1,10 : width 1,100 : caption 1,"A gauche" : on_click 1,gauche
button 2 : top 2,10 : left 2,120 : width 2,100 : caption 2,"En haut" : on_click 2,haut
button 11 : top 11,40 : left 11,10 : width 11,100 : caption 11,"Fixer 2 colonnes" : on_click 11,sgauche
  inactive 11
button 21 : top 21,40 : left 21,120 : width 21,100 : caption 21,"Fixer 2 lignes" : on_click 21,shaut
  inactive 21
memo 30 : top 30,300 : left 30,200 : width 30,500 : height 30,300 : bar_both 30
  font_name 30,"Courier" : font_size 30,12
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
end

sub tableau_initial()
  KG% = dll_call1("DeleteKGFGrid",KG%)
  KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),1,1)
  res% = dll_call5("LocateKGFGrid",KG%,200,80,500,200)
  res% = dll_call5("SetGlobalKGFGridDimensions",KG%,20,10,80,25)
  res% = dll_call6("SetKGFGridCellRangeType",KG%,1,20,1,10,1)
  display  
end_sub

sub charge()
for r%=1 to 20
  for c%=1 to 10
    s$ = "r"+str$(r%)+" c"+str$(c%)
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,r%,r%,c%,c%,adr(s$))
    display
  next c%
next r%
end_sub


gauche:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 colonnes = installer les 2 colonnes fixes"
  return

sgauche:
  s$ = "Arial Black"                                   : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((0*0)+255)*256+255                             : ' défaut: texte en jaune pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedColumns",KG%,2)     : ' <=== fixer les deux colonnes de gauche
  inactive 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Colonnes fixes sur fond par défaut (clAqua=FFFF00)"
  item_add 30,"Police: Arial Black 12 jaune gras italique"
  return

haut:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 Lignes = installer les 2 lignes fixes"
  return

shaut:
  c% = ((0*256)+255)*256+255                           : ' défaut: fond jaune pour cellules fixes
  res% = dll_call2("SetKGFGridFixedDefaultCellColor",KG%,c%)
  s$ = "Arial Black"                                   : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((255*256)+0)*256+0                             : ' défaut: texte en bleu pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedRows",KG%,2)        : ' <=== fixer les deux lignes du haut
  inactive 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Lignes fixes sur fond jaune (clYellow=00FFFF)"
  item_add 30,"Police: Arial Black 12 bleu gras italique"
  return

end

Ecran de départ:
KGF_dll - nouvelles versions - Page 14 Aa1124

Choix A Gauche:
KGF_dll - nouvelles versions - Page 14 Aa1125

Choix Fixer 2 colonnes:
KGF_dll - nouvelles versions - Page 14 Aa1129

Choix En haut:
KGF_dll - nouvelles versions - Page 14 Aa1127

Choix Fixer 2 lignes:
KGF_dll - nouvelles versions - Page 14 Aa1128
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 23 Fév 2024 - 10:53

KGF.dll V10.02 du 23/02/2024

Nouveautés:
- nouvel objet: ListBoxGroup et ses fonctions de gestion

Modules modifiés:
KGF.dll

La doc est inchangée - ça viendra prochainement.

Cet objet réalise un de mes vieux rêves: avoir deux ou plusieurs objets LIST Panoramic synchronisés.
Pour cela, il faut avoir 2 ou plusieurs LISTS ayant le même nombre d'enregsitrements et les mêmes dimensions WIDYH et HEIGHT. Une de ces listes est le "maître", les autres sont les "esclaves". On peu faire défiler toutes ces listes indépendemment par l'ascenseur vertical. Mais dans le cas de la liste maître, cela fait défiler également les listes esclaves de façon synchronisée, et ce même si elles étaient décalées au départ !

On ne peut pas ajouter 2 fois la même LIST dans un objet ListBoxGroup.
On ne peut pas ajouter un objet LIST dans plus d'un seul objet ListBoxGroup.
On ne peut pas supprimer un objet "maître" d'un objet ListBpxGroup.

ATTENTION:
Avant de fermer le programme, il faut supprimer tous les objets LisBoxGroup (évènement ON_CLOSE).


Ceci permet d'avoir des listes pouvant servir de colonnes dans un tableau constitué à l'écran, avec un onèclick sur chacune d'elles. L'effet est assez bluffant.

La syntaxe des fonctions de gestion est la suivante:
Code:
LBG1% = dll_call0("CreateListBoxGroup")   : ' crée un nouveau groupe de listes
res% = dll_call3("ElementForListBoxGroup",LBG%,1,handle(lst%))   : ' ajout d'une liste maître à un groupe
res% = dll_call3("ElementForListBoxGroup",LBG%,2,handle(1))   : ' ajout d'une liste esclave à unn groupe
res% = dll_call3("ElementForListBoxGroup",LBG%,0,handle(1))   : ' supprimer une liste d'un groupe
res% = dll_call1("DeleteListBoxGroup",LBG%)   : ' supprimer un groupe de listes

Voici une petite démo. Le programme montre 2 groupes de 3 listes chacun. La liste maître du premier groupe est celle de gauche. Le maître du second groupe esy la liste du milieu.
Code:
label close0

dim res%, LBG1%, LBG2%

full_space 0 : on_close 0,close0
list 1 : top 1,10 : left 1, 10 : width 1,200 : height 1,300
list 2 : top 2,10 : left 2,220 : width 2,200 : height 2,300
list 3 : top 3,10 : left 3,430 : width 3,200 : height 3,300
font_names_load 1
font_names_load 2
font_names_load 3

list 11 : top 11,330 : left 11,110 : width 11,200 : height 11,300
list 12 : top 12,330 : left 12,320 : width 12,200 : height 12,300
list 13 : top 13,330 : left 13,530 : width 13,200 : height 13,300
font_names_load 11
font_names_load 12
font_names_load 13


dll_on "KGF.dll"
LBG1% = dll_call0("CreateListBoxGroup")
res% = dll_call3("ElementForListBoxGroup",LBG1%,1,handle(1))    : ' <== la liste de gauche est le maître !
res% = dll_call3("ElementForListBoxGroup",LBG1%,2,handle(2))
res% = dll_call3("ElementForListBoxGroup",LBG1%,2,handle(3))

LBG2% = dll_call0("CreateListBoxGroup")
res% = dll_call3("ElementForListBoxGroup",LBG2%,2,handle(11))
res% = dll_call3("ElementForListBoxGroup",LBG2%,1,handle(12))   : ' <== la liste du milieu est le maître !
res% = dll_call3("ElementForListBoxGroup",LBG2%,2,handle(13))
end

close0:
  res% = dll_call1("DeleteListBoxGroup",LBG1%)
  res% = dll_call1("DeleteListBoxGroup",LBG2%)
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
lepetitmarocain




Nombre de messages : 333
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 23 Fév 2024 - 19:16

Bonsoir à tous

@Klaus.

Merci pour la modif concernant les lignes et colonnes fixes.

J' ai fait un essai en ne prenant que le minimum de ton programme, et cela fonctionne.

Par contre, si j'ajoute don juste les mêmes lignes dans mon programme, les lignes qui devaient etre  fixes sont blanches

Merci par avance

Bonne soirée



Code:
dim res%, KG%, f1$, Types$(6), v$, f, img$
      Types$(0) = "Inconnu (traité comme Integer)"
      Types$(1) = "Chaîne"
      Types$(2) = "Entier"
      Types$(3) = "Flottant"
      Types$(4) = "Booléen"
      Types$(5) = "Image"
      Types$(6) = "Mémo"
      dim a$ , lignes%
      full_space 0
  dll_on "KGF.dll"
   dim s$
  
  dim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_program
 
  dim nb_enr%
  
   dim  xx_program$,xx_program  , yy_program$ , yy_program , y_program$ , OUI_NOM$

'  dim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_programdim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_programdim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_program******************************************
'  calcul de la grandeur de l'ecran pour ajuster le grid et les boutons
' *******************************************

ecran_base_x%=1280  : ' 1280
ecran_base_y%=720  : ' 720

ecran_ordi_x%=screen_x
ecran_ordi_y%=screen_y

 ' pour tester ****
' ecran_ordi_x%=1280
' ecran_ordi_y%=720
' ************


                      
x_program= ecran_ordi_x%/ecran_base_x%
y_program= ecran_ordi_y%/ecran_base_y%



xx_program$=x_program
yy_program$=x_program


xx_program$=mid$(xx_program$,1,3)
yy_program$= mid$(yy_program$,1,3)

xx_program=val(xx_program$)
yy_program= val(yy_program$)
nb_enr%=25
 
 KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),13,1)
    res% = dll_call5("LocateKGFGrid",KG%,10,50,1100  , 600  )    : ' position
   ' message 1100 * x_program
 
    res% = dll_call5("SetGlobalKGFGridDimensions",KG%,25,18,10,25)  : ' nbre de lignes nbre de colonnes
  
    res% = dll_call6("SetKGFGridCellRangeColor",KG%,1,1,1,9,hex("008000"))    : ' couleur des lignes
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,5,5,10,10,hex("FF8080"))    : ' couleur de la colonne  10 ligne 5
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,nb_enr%,10,10,hex("FF8080"))  : ' couleur colonne 10
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,nb_enr%,12,12,hex("FF8080"))  : ' couleur colonne 12
  
   ' autoriser la saisie les cellules ************       : ' 03/01/2024
  
      res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,7,13,1)    : '  03/01/2024
      res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,17,17,1)   : ' 03/01/2024
      
  ' if S=40
        
   '   nb_enr%=3
   '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,1,2,17,1)
    '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,7,13,1)    : '  03/01/2024
    '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,17,17,1)    
          
 '  end_if  
  
 

    ' *******************************************
  
    ' *************************************  
    
    res% = dll_call6("SetKGFGridCellRangeType",KG%,1,1,1,18,1)      : ' ligne des titres de colonnes
    
    res% = dll_call6("SetKGFGridCellRangeActive",KG%,2,nb_enr%,1,18,1)   : ' nbre de lignes pouvant etre ecrites
    
    res% = dll_call6("SetKGFGridCellRangeType",KG%,2,nb_enr%,1,18,1)  
    
    res% = dll_call6("SetKGFGridCellRangeFontBold",KG%,1,1,1,18,1)
    
  
  
  
    ' libéllé dans saisie  cellule  ******************************
    
  
    ' *********************************
    
    s$ = "date affectation.D.A" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,7,7,adr(s$))    :   ' date affectation D.A
    
    s$ = "date demande de Prix" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,8,8,adr(s$))    :   ' date demande de prix
    
    s$ = "date Reception Devis" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,9,9,adr(s$))    :   ' date reception devis
    
    s$ = "N° de Commande" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,10,10,adr(s$))    :   ' N° de Commande
    
    s$ = "date Envoi Commande" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,11,11,adr(s$))    :   ' date envoi Commande
    
    s$ = "Date A.R Saisie" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,12,12,adr(s$))    :   ' date A.R
    
    s$ = "Date A.R Saisie" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,13,13,adr(s$))    :   ' date A.R Saisie
    
  
    
    s$ = "Saisie Fournisseur" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,6,6,adr(s$))    :   ' saisie ou modif Fournisseur  depuisligne 2 à X et cellule 6
    
    ' saisie dans commentaire
    s$ = "Saisie Commentaire" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,14,14,adr(s$))    :   ' commentraire
    
    ' saisie dans commentaire 2
    s$ = "Saisie Commentaire 2" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,17,17,adr(s$))    :   ' commentraire
    
   ' res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,i%,i%,j%,j%,adr(s$))

    ' largeur des colonnes
    
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,1,1,1)    : ' avant 100
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,2,2,100)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,3,3,80)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,95)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,5,5,350)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,6,6,350)  
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,7,7,100)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,8,13,90)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,14,14,1)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,15,15,1)     : ' avant 90
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,16,16,1)       : ' avant 50
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,17,17,600)   : ' commentairen 2
    
    
    
    res% = dll_call4("SetKGFGridRowRangeHeight",KG%,1,1,50)     : ' hauteur ligne
    
    res% = dll_call6("SetKGFGridCellRangeColor",KG%,1,1,1,17,hex("66FF66"))
    
   ' img$ = "Android.bmp"
   ' res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,2,2,adr(img$)) : ' ok
    
    v$ = "Arial"
    res% = dll_call6("SetKGFGridCellRangeFontName",KG%,1,18,1,6,adr(v$))
    
    res% = dll_call6("SetKGFGridCellRangeFontSize",KG%,1,1,1,16,10)    : ' taille font 1ere ligne
    
    v$ = "Date du Jour"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,2,2,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,2,2,5)
    
    v$ = "DA"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,3,3,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,3,3,5)
    
        
    v$ = "Ref."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,4,4,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,4,4,5)
    
    v$ = "Désignation."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,5,5,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,5,5,5)
    
    
    v$ = "Fournisseur"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,6,6,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,6,6,5)
    
    v$ = "DateAf.DA "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,7,7,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,5)
    
    v$ = "Date Dde Prix"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,8,8,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,8,8,5)
    
    v$ = "Dat.rec dev "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,9,9,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "N°.cde "   : ' cette ligne etait avnt 08/01/2024 Date de Commande
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,10,10,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Dat.env cde "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,11,11,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Dat.AR "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,12,12,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "AR Saisie"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,13,13,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Commentaire 1 ne sert plus "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,14,14,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Matr."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,15,15,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Ligne"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,16,16,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Commentaire 2 "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,17,17,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
     ' **** ajout du 23/02/2024 pour fixer des colonnes
    
     dim c%
    s$ = "Arial Black"
                                      : ' défaut: texte en Arial Black pour cellules fixes
      c% = ((0*0)+255)*256+255                             : ' défaut: texte en jaune pour cellules fixes
      res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
      res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
     res% = dll_call2("SetKGFGridFixedColumns",KG%,2)     : ' <=== fixer les  colonnes de gauche
    
    
    
    
  
    le libelle dans chaque ligne ne sont pas visibles

Ci dessous, un morceau de programme avec le grids uniquement

 dim res%, KG%, f1$, Types$(6), v$, f, img$
      Types$(0) = "Inconnu (traité comme Integer)"
      Types$(1) = "Chaîne"
      Types$(2) = "Entier"
      Types$(3) = "Flottant"
      Types$(4) = "Booléen"
      Types$(5) = "Image"
      Types$(6) = "Mémo"
      dim a$ , lignes%
      full_space 0
  dll_on "KGF.dll"
   dim s$
  
  dim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_program
 
  dim nb_enr%
  
   dim  xx_program$,xx_program  , yy_program$ , yy_program , y_program$ , OUI_NOM$

'  dim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_programdim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_programdim ctr ,cc$ , err$ , commande_pour_trier$ , ecran_x% , ecran_y% , ecran_ordi_x% , ecran_ordi_y%  , ecran_base_x% , ecran_base_y% , x_program, y_program******************************************
'  calcul de la grandeur de l'ecran pour ajuster le grid et les boutons
' *******************************************

ecran_base_x%=1280  : ' 1280
ecran_base_y%=720  : ' 720

ecran_ordi_x%=screen_x
ecran_ordi_y%=screen_y

 ' pour tester ****
' ecran_ordi_x%=1280
' ecran_ordi_y%=720
' ************


                      
x_program= ecran_ordi_x%/ecran_base_x%
y_program= ecran_ordi_y%/ecran_base_y%



xx_program$=x_program
yy_program$=x_program


xx_program$=mid$(xx_program$,1,3)
yy_program$= mid$(yy_program$,1,3)

xx_program=val(xx_program$)
yy_program= val(yy_program$)
nb_enr%=25
 
 KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),13,1)
    res% = dll_call5("LocateKGFGrid",KG%,10,50,1100  , 600  )    : ' position
   ' message 1100 * x_program
 
    res% = dll_call5("SetGlobalKGFGridDimensions",KG%,25,18,10,25)  : ' nbre de lignes nbre de colonnes
  
    res% = dll_call6("SetKGFGridCellRangeColor",KG%,1,1,1,9,hex("008000"))    : ' couleur des lignes
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,5,5,10,10,hex("FF8080"))    : ' couleur de la colonne  10 ligne 5
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,nb_enr%,10,10,hex("FF8080"))  : ' couleur colonne 10
   ' res% = dll_call6("SetKGFGridCellRangeColor",KG%,2,nb_enr%,12,12,hex("FF8080"))  : ' couleur colonne 12
  
   ' autoriser la saisie les cellules ************       : ' 03/01/2024
  
      res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,7,13,1)    : '  03/01/2024
      res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,17,17,1)   : ' 03/01/2024
      
  ' if S=40
        
   '   nb_enr%=3
   '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,1,2,17,1)
    '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,7,13,1)    : '  03/01/2024
    '  res% = dll_call6("SetKGFGridCellRangeEditable",KG%,2,nb_enr%,17,17,1)    
          
 '  end_if  
  
 

    ' *******************************************
  
    ' *************************************  
    
    res% = dll_call6("SetKGFGridCellRangeType",KG%,1,1,1,18,1)      : ' ligne des titres de colonnes
    
    res% = dll_call6("SetKGFGridCellRangeActive",KG%,2,nb_enr%,1,18,1)   : ' nbre de lignes pouvant etre ecrites
    
    res% = dll_call6("SetKGFGridCellRangeType",KG%,2,nb_enr%,1,18,1)  
    
    res% = dll_call6("SetKGFGridCellRangeFontBold",KG%,1,1,1,18,1)
    
  
  
  
    ' libéllé dans saisie  cellule  ******************************
    
  
    ' *********************************
    
    s$ = "date affectation.D.A" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,7,7,adr(s$))    :   ' date affectation D.A
    
    s$ = "date demande de Prix" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,8,8,adr(s$))    :   ' date demande de prix
    
    s$ = "date Reception Devis" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,9,9,adr(s$))    :   ' date reception devis
    
    s$ = "N° de Commande" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,10,10,adr(s$))    :   ' N° de Commande
    
    s$ = "date Envoi Commande" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,11,11,adr(s$))    :   ' date envoi Commande
    
    s$ = "Date A.R Saisie" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,12,12,adr(s$))    :   ' date A.R
    
    s$ = "Date A.R Saisie" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,13,13,adr(s$))    :   ' date A.R Saisie
    
  
    
    s$ = "Saisie Fournisseur" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,6,6,adr(s$))    :   ' saisie ou modif Fournisseur  depuisligne 2 à X et cellule 6
    
    ' saisie dans commentaire
    s$ = "Saisie Commentaire" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,14,14,adr(s$))    :   ' commentraire
    
    ' saisie dans commentaire 2
    s$ = "Saisie Commentaire 2" : ' cellule ["+str$(i%)+","+str$(j%)+"]"
    res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,2,nb_enr%,17,17,adr(s$))    :   ' commentraire
    
   ' res% = dll_call6("SetKGFGridCellRangeQueryText",KG%,i%,i%,j%,j%,adr(s$))

    ' largeur des colonnes
    
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,1,1,1)    : ' avant 100
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,2,2,100)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,3,3,80)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,95)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,5,5,350)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,6,6,350)  
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,7,7,100)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,8,13,90)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,14,14,1)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,15,15,1)     : ' avant 90
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,16,16,1)       : ' avant 50
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,17,17,600)   : ' commentairen 2
    
    
    
    res% = dll_call4("SetKGFGridRowRangeHeight",KG%,1,1,50)     : ' hauteur ligne
    
    res% = dll_call6("SetKGFGridCellRangeColor",KG%,1,1,1,17,hex("66FF66"))
    
   ' img$ = "Android.bmp"
   ' res% = dll_call6("SetKGFGridCellRangeValue",KG%,2,2,2,2,adr(img$)) : ' ok
    
    v$ = "Arial"
    res% = dll_call6("SetKGFGridCellRangeFontName",KG%,1,18,1,6,adr(v$))
    
    res% = dll_call6("SetKGFGridCellRangeFontSize",KG%,1,1,1,16,10)    : ' taille font 1ere ligne
    
    v$ = "Date du Jour"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,2,2,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,2,2,5)
    
    v$ = "DA"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,3,3,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,3,3,5)
    
        
    v$ = "Ref."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,4,4,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,4,4,5)
    
    v$ = "Désignation."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,5,5,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,5,5,5)
    
    
    v$ = "Fournisseur"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,6,6,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,6,6,5)
    
    v$ = "DateAf.DA "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,7,7,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,5)
    
    v$ = "Date Dde Prix"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,8,8,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,8,8,5)
    
    v$ = "Dat.rec dev "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,9,9,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "N°.cde "   : ' cette ligne etait avnt 08/01/2024 Date de Commande
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,10,10,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Dat.env cde "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,11,11,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Dat.AR "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,12,12,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "AR Saisie"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,13,13,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Commentaire 1 ne sert plus "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,14,14,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Matr."
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,15,15,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Ligne"
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,16,16,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
    
    v$ = "Commentaire 2 "
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,1,1,17,17,adr(v$))
    res% = dll_call6("SetKGFGridCellRangeJustification",KG%,1,1,7,7,6)
     ' **** ajout du 23/02/2024 pour fixer des colonnes
    
     dim c%
    s$ = "Arial Black"
                                      : ' défaut: texte en Arial Black pour cellules fixes
      c% = ((0*0)+255)*256+255                             : ' défaut: texte en jaune pour cellules fixes
      res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
      res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
     res% = dll_call2("SetKGFGridFixedColumns",KG%,2)     : ' <=== fixer les  colonnes de gauche
    
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyVen 23 Fév 2024 - 23:35

C'est très difficile de juger d'après ces morceaux de code fragmentaire.

Ce que le vois (à la fin du code que tu as posté), c'est que tu déclares les DEUX premières colonnes comme fixe, exactement comme dans ma démo. Bien. Sauf que j'ai bien précisé que TOUTES les cellules et TOUTES les colonnes fixes doivent être du type TEXTE (code 2 !) et non pas du type numérique (code 1). Je pense que c'est pourquoi la lecture de ces cellules échoue et le résultat est un string vide, et donc la cellule s'affiche en blanc (vide).

Quelques conseils:
- regarde la structure de mn programme: la place des labels, des DIM, des constantes, des définitions des objets visuels etc. Essaie de structurer ton programme de fa_on similaire - regrouper au début, et par nature, toutes les déclarations de base qui ne participent pas à la logique d'exécution du programme.
- respecte les règles relatives aux fonctions de lignes/colonnes fixes - elles sont décrites dans mon post. En particulier, je ne suis pas sûr que ton intention était bien d'avoir les deux premières colonnes fixes...
- essaie de produire un code restraint, SANS tous les détails ne concernant pas les zones cncernées par le problème, et un code complet exécutable de sorte que je puisse reproduire le problème ici. Réalise également des captures d'écran afin d'illustrer la situation.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyDim 25 Fév 2024 - 9:30

Bonjour à tous !

@Klaus

Sujet : ListBoxGroup

Testé avec succès !
Merci Klaus !


Il y a aussi une alternative 100% Panoramic que j’utilise lorsque que j’ai une base de données qui est éclatée à différents endroits d’un programme. Un ascenseur maître, sous forme de SCROLL_BAR,  établit la synchronisation et le défilement des LISTs.

Démonstration : 
Code:
label choixList_1, choixList_2, choixList_3 ,choixList_4, scroll

dim ligne%

width 0,330 : height 0,350
form 30 : left 30,315 : top 30,150 : width 30,330 : height 30,350

list 1 : top 1,10 : left 1, 30 : width 1,110 : height 1,130 : color 1,255,255,200
list 2 : top 2,160 : left 2,140 : width 2,150 : height 2,120
list 3 : parent 3,30 : top 3,10 : left 3,10 : width 3,110 : height 3,260
list 4 : parent 4,30 : top 4,110 : left 4,150 : width 4,150 : height 4,80 : font_size 4,12

scroll_bar 5 : vertical 5 : top 5,10 : left 5,10 : width 5,15 : height 5,height(1)

container 8 : top 8,170 : left 8,20 : width 8,90 : height 8,90
alpha 9 : parent 9,8 : left 9,10 : top 9,20
alpha 10 : left 10,35 : top 10,145
alpha 11 : left 11,145 : top 11,285
alpha 12 : parent 12,30 : left 12,15 : top 12,275
alpha 13 : parent 13,30 : left 13,155 : top 13,195

for ligne% = 1 to 20
    item_add 1,"LIST 1, ligne " + str$(ligne%)
    item_add 2,"LIST 2, ligne " + str$(ligne%)
    item_add 3,"LIST 3, ligne " + str$(ligne%)
    item_add 4,"LIST 4, ligne " + str$(ligne%)
next ligne%

min 5,1 : max 5,count(1) : on_change 5,scroll

on_click 1,choixList_1
on_click 2,choixList_2
on_click 3,choixList_3
on_click 4,choixList_4
end

choixList_1:
    item_select 2,item_index(1)
    item_select 3,item_index(1)
    item_select 4,item_index(1)

    caption 9,item_index$(1) + chr$(13) + item_index$(2) + chr$(13) + item_index$(3) + chr$(13) + item_index$(4)
    caption 10,item_index$(1)

    off_change 5
    position 5,item_index(1)
    on_change 5,scroll
return  

choixList_2:
    caption 11,item_index$(2)
return

choixList_3:
    caption 12,item_index$(3)
return

choixList_4:
    caption 13,item_index$(4)
return

scroll:
   item_select 1,position(5)
   item_select 2,position(5)
   item_select 3,position(5)
   item_select 4,position(5)
return  
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyDim 25 Fév 2024 - 14:36

Oui, tu as raison - la même ligne apparaît dans la fenêtre de visualisation.

Mais il y a une grande différence: la ligne sélectionnée n'a pas la même position relative dans les différentes fenêtres de visualisation. Ceci interdit d'avoir des listes parallèles, un peu comme des colonnes d'un tableau, et de les scroller de façon sunchrone.

Il y a aussi une autre différence: les LIST esclaves  ne se déplacent pas lorsqu'on scrolle avec la barre de défilement de la liste maître !Et c'est cela l'objectif principal de ListBoxGroup...

EDIT

Est-ce que tu as vu KGF.dll V10.01 du 22/02/2024 publié à 11:33, avec la nouveauté pour KGFGrid ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyDim 25 Fév 2024 - 17:23

@Klaus

Citation :
Mais il y a une grande différence: la ligne sélectionnée n'a pas la même position relative dans les différentes fenêtres de visualisation. Ceci interdit d'avoir des listes parallèles, un peu comme des colonnes d'un tableau, et de les scroller de façon sunchrone.
Il y a aussi une autre différence: les LIST esclaves  ne se déplacent pas lorsqu'on scrolle avec la barre de défilement de la liste maître !Et c'est cela l'objectif principal de ListBoxGroup...

Oui, effectivement, c’est indéniable, ListBoxGroup possède des caractéristiques intéressantes qui sont très pratiques voire incontournables suivant le résultat final souhaité.


Citation :
Est-ce que tu as vu KGF.dll V10.01 du 22/02/2024 publié à 11:33, avec la nouveauté pour KGFGrid 

Oui, j’ai l’ai vu, mais je n’ai pas encore pris le temps d’essayer le nouveau KGFGrid.
C'est vraiment un plus d'avoir ajouté la possibilité de figer les premières colonnes / lignes.

Bravo et merci !  cheers
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyDim 25 Fév 2024 - 22:28

@Klaus

Sujet : KGFGrid

J'ai pris une petite partie du source ci-dessus de Lepetitmarocain pour effectuer des tests.

Lorsque je fixe la première ligne de KGFGrid, elle perd son formatage : toutes les colonnes de la première ligne prennent la largeur de la première cellule.

Code:
dim res%, KG%
width 0,width(0)-width_client(0)+1120
height 0,height(0)-height_client(0)+620

dll_on "kgf"

creerKGFgrid()

end
' ------------------------------------------------------------------------------
sub creerKGFgrid()
    ' Configuration générale
    KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),1,1)
    res% = dll_call5("LocateKGFGrid",KG%,10,10,1100,600)
    res% = dll_call5("SetGlobalKGFGridDimensions",KG%,10,6,100,25)
    
    ' largeur des colonnes
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,1,1,20)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,2,2,100)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,3,3,80)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,95)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,5,5,350)
    res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,6,6,350)  

    ' fixer la première ligne
    res% = dll_call2("SetKGFGridFixedRows",KG%,1)
end_sub

Capture d'écran:
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 1:11

KGF.dll V10.03 du 26/02/2024

Nouveautés:
- KGFGrid - correction d'un bug de hauteur/largeur des lignes/colonnes fixes

Modules modifiés:
KGF.dll

La doc est inchangée - ça viendra prochainement.

Ce bug est corrigé. Un oubli de ma part - cela n'aurait pas dû arriver. Merci pour le signalement, Marc !

Voici le programme de démo qui génère la colonne 4 plus large et la ligne 4 plus haute:
Code:
' prototype_KGFGrid.bas

label gauche, haut, sgauche, shaut

dim res%, KG%, r%, c%, s$

dll_on "KGF.dll"

full_space 0
button 1 : top 1,10 : left 1,10 : width 1,100 : caption 1,"A gauche" : on_click 1,gauche
button 2 : top 2,10 : left 2,120 : width 2,100 : caption 2,"En haut" : on_click 2,haut
button 11 : top 11,40 : left 11,10 : width 11,100 : caption 11,"Fixer 2 colonnes" : on_click 11,sgauche
  inactive 11
button 21 : top 21,40 : left 21,120 : width 21,100 : caption 21,"Fixer 2 lignes" : on_click 21,shaut
  inactive 21
memo 30 : top 30,300 : left 30,200 : width 30,500 : height 30,300 : bar_both 30
  font_name 30,"Courier" : font_size 30,12
  item_add 30,"Choisir le mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
end

sub tableau_initial()
  KG% = dll_call1("DeleteKGFGrid",KG%)
  KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),1,1)
  res% = dll_call5("LocateKGFGrid",KG%,200,80,500,200)
  res% = dll_call5("SetGlobalKGFGridDimensions",KG%,20,10,80,25)
  res% = dll_call6("SetKGFGridCellRangeType",KG%,1,20,1,10,1)
  res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,120)
  res% = dll_call4("SetKGFGridRowRangeHeight",KG%,4,4,50)
  display 
end_sub

sub charge()
for r%=1 to 20
  for c%=1 to 10
    s$ = "r"+str$(r%)+" c"+str$(c%)
    res% = dll_call6("SetKGFGridCellRangeValue",KG%,r%,r%,c%,c%,adr(s$))
    display
  next c%
next r%
end_sub


gauche:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 colonnes = installer les 2 colonnes fixes"
  return

sgauche:
  s$ = "Arial Black"                                  : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((0*0)+255)*256+255                            : ' défaut: texte en jaune pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedColumns",KG%,2)    : ' <=== fixer les deux colonnes de gauche
  inactive 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Colonnes fixes sur fond par défaut (clAqua=FFFF00)"
  item_add 30,"Police: Arial Black 12 jaune gras italique"
  return

haut:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 Lignes = installer les 2 lignes fixes"
  return

shaut:
  c% = ((0*256)+255)*256+255                          : ' défaut: fond jaune pour cellules fixes
  res% = dll_call2("SetKGFGridFixedDefaultCellColor",KG%,c%)
  s$ = "Arial Black"                                  : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((255*256)+0)*256+0                            : ' défaut: texte en bleu pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedRows",KG%,2)        : ' <=== fixer les deux lignes du haut
  inactive 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Lignes fixes sur fond jaune (clYellow=00FFFF)"
  item_add 30,"Police: Arial Black 12 bleu gras italique"
  return

end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 1:31

Citation :
Ce bug est corrigé.

Merci Klaus !
C'est tout bon !  cheers

Je continuerai demain les tests des différentes fonctions.
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 15:18

@Klaus :

Idée d'amélioration de l'objet KGFGrid :

- Etendre la fonction SetKGFGridCellRangeJustification aux cellules fixes.

- Lors d'un redimensionnement de l'objet KGFGrid complet, les lignes fixes disparaissent (voir le programme ci-dessous).


Programme test où l'objet KGFGrid est asservi au redimensionnement du FORM 0 :
Code:
' Test_KGFGrid.bas
dim res%, KG%, r%, c%, s$

label redim0

dll_on "KGF.dll"

tableau_initial()
charge()
fixerLigne()

on_resize 0,redim0

end

sub tableau_initial()
  dim_local largeur%, hauteur%
  largeur% = width_client(0) - 20 :' 20 ==> marges : 10 pixels à droite + 10 pixels à gauche  
  hauteur% = height_client(0) - 20 : ' 20 ==> marges : 10 pixels en haut + 10 pixels en bas
  
  KG% = dll_call1("DeleteKGFGrid",KG%)
  KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),1,1)
  res% = dll_call5("LocateKGFGrid",KG%,10,10,largeur%,hauteur%)
  res% = dll_call5("SetGlobalKGFGridDimensions",KG%,20,10,80,25)
  res% = dll_call6("SetKGFGridCellRangeType",KG%,1,20,1,10,1)
  res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,120)
  res% = dll_call4("SetKGFGridRowRangeHeight",KG%,4,4,50)
  display
end_sub

sub charge()
  for r%=1 to 20
    for c%=1 to 10
      s$ = "r"+str$(r%)+" c"+str$(c%)
      res% = dll_call6("SetKGFGridCellRangeValue",KG%,r%,r%,c%,c%,adr(s$))
      display
    next c%
  next r%
end_sub

sub fixerLigne()
  c% = ((0*256)+255)*256+255                          : ' défaut: fond jaune pour cellules fixes
  res% = dll_call2("SetKGFGridFixedDefaultCellColor",KG%,c%)
  s$ = "Arial Black"                                  : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((255*256)+0)*256+0                            : ' défaut: texte en bleu pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedRows",KG%,2)        : ' <=== fixer les deux lignes du haut
end_sub

redim0:
    redimensionnementKGFGrid()
return

sub redimensionnementKGFGrid()
    ' Redimensionnement de KGFGrid en fonction des dimensions de la fenetre 0
    dim_local largeur%, hauteur%
    
    largeur% = width_client(0) - 20 :' 20 ==> marges : 10 pixels à droite + 10 pixels à gauche  
    hauteur% = height_client(0) - 20 : ' 20 ==> marges : 10 pixels en haut + 10 pixels en bas

    res% = dll_call5("LocateKGFGrid",KG%,10,10,largeur%,hauteur%) :' position x, y, largeur, hauteur
end_sub

Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 15:48

Les cellules fixes disparaissent - oui, il faut les redemander.

L'extension des attributs aux cellules fixes - c'est en gestation.

En fait, j'ai utilisé une petite astuce technique pour réaliser les lignes et colonnes fixes.
Je rend invisibles ces colonnes, je crée un KGFGris suplémentaire avec les dimenions de zones fices et je le olace à l'endroit du KGFGrid d'origine qui, de son côté, est déplacé horizontalement ou verticalement, selon le cas.

Ceci signifie que le dois copier le contenu des cellules rendues jn visibles dans celles dunouveau KGFGrid. Mes données, c'était facile. Tu as pu constater qu'au début, des dimensions manquaient... c'est fait. Police, attributs et couleurs - c'est fait. Le format d'affichage et la justification - c'est en cours.

Pour le moment, j'ai semé la pagaille dans mon code - faudra que je corrige cela d'abord avant de continuer.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2379
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 17:25

@Klaus :
 
Merci pour les explications.
 
J’ai restructuré le programme de Lepetitmarocain et je constate une anomalie :
Lors d’un clic sur une cellule partiellement visible, le tableau se décale pour obtenir une vue complète de la cellule, mais la ligne fixe ne se décale pas.
 
Avec des captures d’écran, se sera plus parlant :
 
Situation de départ:
 
Après avoir cliqué, la ligne fixe n’a pas suivi le reste du tableau:



Une action sur l'ascenseur horizontal rétablit la situation.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyLun 26 Fév 2024 - 23:13

Intéressant. Je pense savoir d'où ça vient, mais il faut d'abord que je répare la pagaille que j'y ai mise... mais je m'en occupe.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
lepetitmarocain




Nombre de messages : 333
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 27 Fév 2024 - 10:49

Bonjour à tous.

@Marc.
Merci beaucoup d'avoir testé mon morceau de programme.
Je ne savais pas comment expliquer le problème à Klaus.

@Klaus
Merci pour ton travail.

Bonne journée.
Revenir en haut Aller en bas
lepetitmarocain




Nombre de messages : 333
Age : 81
Localisation : Région Parisienne (à mon grand désespoir)
Date d'inscription : 04/07/2018

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 27 Fév 2024 - 11:03

Bonjour de nouveau.
@Klaus
Je constate que sur les lignes fixes, il n'y a toujours pas de libellé, alors qu'il y en a dans le programme.
Je pense donc qu'il n'y aura également pas de lignes venant de mon fichier.
Merci.
Bonne journée
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMar 27 Fév 2024 - 12:01

Il n'y a pas de libéllé ? Essaie de déclarer, pour les lignes fixes, toute les cellules de ces lignes en type "texte" (type 1). C'est uniquement ce type de cellule qui est pris en compte actuellement pour les lignes/colonnes fixes.

Cela fera partie d'une évolution à venir.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 EmptyMer 28 Fév 2024 - 17:01

KGF.dll V10.04 du 28/02/2024

Nouveautés:
- KGFGrid - correction d'un bug de hauteur/largeur des lignes/colonnes fixes
- KGFGrid: reprise dans les zones fixes du type de cellules string, integer et flottant, justification et bordures


Modules modifiés:
KGF.dll

La doc est inchangée - ça viendra prochainement.

Voilà. Be bug est corrigé, et on reprend maintenant correctement les cellules de type string, integer et flottant. On applique également la justification ainsi que les bordures des cellules individuelles dans les parties fixes.

Je rappelle le programme de démo:
Code:
' prototype_KGFGrid.bas

label gauche, haut, sgauche, shaut

dim res%, KG%, r%, c%, s$
dim KGOK%

dll_on "KGF.dll"

full_space 0
button 1 : top 1,10 : left 1,10 : width 1,100 : caption 1,"A gauche" : on_click 1,gauche
button 2 : top 2,10 : left 2,120 : width 2,100 : caption 2,"En haut" : on_click 2,haut
button 11 : top 11,40 : left 11,10 : width 11,100 : caption 11,"Fixer 2 colonnes" : on_click 11,sgauche
  inactive 11
button 21 : top 21,40 : left 21,120 : width 21,100 : caption 21,"Fixer 2 lignes" : on_click 21,shaut
  inactive 21
memo 30 : top 30,300 : left 30,200 : width 30,500 : height 30,300 : bar_both 30
  font_name 30,"Courier" : font_size 30,12
  item_add 30,"Choisir le mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
end

sub tableau_initial()
  KG% = dll_call1("DeleteKGFGrid",KG%)
  KG% = dll_call4("CreateKGFGrid",object_internal(0),handle(0),2,1)
  res% = dll_call5("LocateKGFGrid",KG%,200,80,500,200)
  res% = dll_call5("SetGlobalKGFGridDimensions",KG%,20,10,80,25)
  res% = dll_call6("SetKGFGridCellRangeType",KG%,1,20,1,10,1)              : ' <===== crash ici !
  res% = dll_call4("SetKGFGridColumnRangeWidth",KG%,4,4,120)
  res% = dll_call4("SetKGFGridRowRangeHeight",KG%,4,4,50)
  display 
end_sub

sub charge()
  for r%=1 to 20
    for c%=1 to 10
      s$ = "r"+str$(r%)+" c"+str$(c%)
      res% = dll_call6("SetKGFGridCellRangeValue",KG%,r%,r%,c%,c%,adr(s$))
      display
    next c%
  next r%
end_sub


gauche:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 colonnes = installer les 2 colonnes fixes"
  return

sgauche:
  s$ = "Arial Black"                                  : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((0*0)+255)*256+255                            : ' défaut: texte en jaune pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedColumns",KG%,2)    : ' <=== fixer les deux colonnes de gauche
  inactive 11
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Colonnes fixes sur fond par défaut (clAqua=FFFF00)"
  item_add 30,"Police: Arial Black 12 jaune gras italique"
  return

haut:
  inactive 11
  inactive 21
  tableau_initial()
  charge()
  active 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Fixer 2 Lignes = installer les 2 lignes fixes"
  return

shaut:
  c% = ((0*256)+255)*256+255                          : ' défaut: fond jaune pour cellules fixes
  res% = dll_call2("SetKGFGridFixedDefaultCellColor",KG%,c%)
  s$ = "Arial Black"                                  : ' défaut: texte en Arial Black pour cellules fixes
  c% = ((255*256)+0)*256+0                            : ' défaut: texte en bleu pour cellules fixes
  res% = dll_call4("SetKGFGridDefaultFixedCellFont",KG%,adr(s$),12,c%)
  res% = dll_call5("SetKGFGridDefaultFixedCellAttributes",KG%,1,1,0,0) : ' défaut: texte en gras italique pour cellules fixes
  res% = dll_call2("SetKGFGridFixedRows",KG%,2)        : ' <=== fixer les deux lignes du haut
  inactive 21
  clear 30
  item_add 30,"Choisir me mode opératoire:"
  item_add 30,"  A gauche = les deux colonnes de gauche sont fixes"
  item_add 30,"  En haut  = les deux lignes du haut sont fixes"
  item_add 30," "
  item_add 30,"Lignes fixes sur fond jaune (clYellow=00FFFF)"
  item_add 30,"Police: Arial Black 12 bleu gras italique"
  return

end
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 14 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 14 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 14 sur 14Aller à la page : Précédent  1 ... 8 ... 12, 13, 14
 Sujets similaires
-
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» Nouvelles DLL bonus

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: