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
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 19 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 19 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 19 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 19 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 19 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 19 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 19 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 19 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 19 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 19 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 19 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 19 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 19 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 19 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 19 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 KGF_dll - nouvelles versions

Aller en bas 
+8
JL35
Marc
papydall
Jicehel
Yannick
pascal10000
Minibug
Klaus
12 participants
Aller à la page : Précédent  1 ... 11 ... 18, 19, 20 ... 29 ... 40  Suivant
AuteurMessage
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyVen 15 Avr 2016 - 18:54

Soit, le code n' est pas optimisé.
Mais entre les deux captures, seule change la version de la dll avec l' ajout des deux options supplémentaires.
Visiblement, ces deux fonctions ont fait bouger quelque chose. 
Quoi, je ne sais pas, mais le comportement est différent et sans rien ajouter.
Ce qui m' ennuie le plus, c' est que je formate par colonne et qu' une fois formatées, je ne pensais pas devoir y revenir.
Là, il me faut faire du formatage à chaque ligne.

Je crois que ce programme va garder la version 6.31.
Je verrai si j' ai le courage de remettre le couvert plus tard avec la version 6.32.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyVen 15 Avr 2016 - 19:10

Et oui... tu vois bien dans la doc du code 9 de GridFunction que tu ne peux pas spécifier des attributs pour une colonne, avec ce code. Seulement pour une cellule dont tu donnes les valeurs X et Y. Je me heurte là à la limite technique de Panoramic: six paramètres maxi pour une fonction.

Tiens, essaie de passer le numéro de ligne comme -1 sur 16 bits, soit 65535, comme ceci:

Citation :
2*65526+65525

Est-ce que ça marche ?


Non. Je vais faire de sorte que tu puisses passer 0 comme numéro de ligne et/ou de colonne, et tu pourras ainsi agir sur la colonne 2 de cette manière:
Citation :
2*65535
Ca viendra ce soir.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyVen 15 Avr 2016 - 19:34

Et pourquoi pas des chaînes $ en paramètre par adr()

Pour les attributs, "PTTGISB" > "Times080100"

cela est déjà le cas pour synedit il me semble.

Pour par1% : 
"0" tout 
"C1" colonne 1 
"L1" ligne 1 
"C1L1" cellule 1.1

voir aussi >0 =colonne et <0 =ligne (ou inversement )
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyVen 15 Avr 2016 - 22:02

KGF.dll V6.33 du 15/04/2016
StringGrid version V5 du 15/04/2016


Nouveautés:
- GridFunction: code 9: on peut passer ligne et/ou colonne comme 0 pour cibler toute la colonne et/ou ligne

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Dans le programme exemple ci-après, la colonne 9 (hormis la ligne fixe) est passé en gras, italique et justifiée à droite, avec un seul appel à GridFunction:
Code:
' test_GridFunction_code_12.bas

' Ce programme teste le code 12 de GridFunction.
' Ce code permet de définir des rectangles dans un GRID
' pour lesquels la sélection est interdite.




label clic, linup

GridConstants()      : ' définir des constantes pour le code fonction de GridFunction

dim res%, l%, c%, RGB%, s$, x%, y%, status%, SG%, SG2%, SGclic%
dim M1% : M1% = 0 - 1
dim stat$(3)
  stat$(0) = "Normal"
  stat$(1) = "Libre"
  stat$(2) = "Sélectionnable"
  stat$(3) = "Bloqué"

dll_on "KGF.dll"

width 0,690 : height 0,310

edit 98 : ' hide 98
  top 98,300 : on_change 98,clic
height 0,380

memo 99 : hide 99
  item_add 99,"Width=660"
  item_add 99,"Height=260"
  item_add 99,"Rows=10"
  item_add 99,"Columns=10"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG% = dll_call3("CreateStringGrid",handle(0),handle(99),handle(98))
s$ = string$(255," ")
res% = dll_call6("GridFunction",SG%,GF_GetVersion,adr(s$),0,0,0)
caption 0,"Objet StringGrid "+trim$(s$)


for l%=1 to 10
  for c%=1 to 10
    s$ = str$(c%)+","+str$(l%)
    res% = dll_call4("WriteGridCell",SG%,c%,l%,adr(s$))
  next c%
next l%
s$ = "ABCD"
res% = dll_call4("WriteGridCell",SG%,9,4,adr(s$))
' passer la colonne 9 en gras, italique et cadrée à droite
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,9*65536,256+512+8192,0,0-1)
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,0,0,0,0)

s$ = "10"
res% = dll_call4("WriteGridCell",SG%,6,10,adr(s$))
s$ = "80"
res% = dll_call4("WriteGridCell",SG%,7,10,adr(s$))

width 0,920
memo 2 : width 2,200 : left 2,660+20  : ' width(1)+20
height 2,260 : ' height(1)
font_name 2,"Courier"
display

button 3 : top 3,300 : left 3,200 : caption 3,"Ligne ^^^" : on_click 3,linup

' première zone interdite totalement
res% = dll_call6("GridFunction",SG%,GF_SetNonSelRect,3,2,5,3)

' seconde zone interdite en saisie uniquement
res% = dll_call6("GridFunction",SG%,GF_SetNonModRect,7,4,8,5)

' troisième zone CheckBox à gauche
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,6,4,9)

' quatrième zone CheckBox à droite
res% = dll_call6("GridFunction",SG%,GF_SetRightCB,6,7,9,8)

' Cinquième zone CheckBox à gauche dans zone interdite
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,2,4,3)

' Sixième zone CheckBox à droite dans zone protégée
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,7,4,7,5)

' taille et couleur des ProgressBars
res% = dll_call6("GridFunction",SG%,GF_SetProgressBarAttrib,12,255,0,0)
' Septième zone ProgressBar
res% = dll_call6("GridFunction",SG%,GF_SetProgressBar,6,10,7,10)

' activer les couleurs personnalisées
res% = dll_call6("GridFunction",SG%,GF_ActivateResetColor,1,0,0,0)

RGB(255,200,200)
for l%=2 to 3
  for c%=3 to 3 : ' 5
    ' couleur de la première zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

RGB(200,200,255)
for l%=4 to 5
  for c%=7 to 8
    ' couleur de la seconde zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

' utiliser la ImageList interne
res% = dll_call6("GridFunction",SG%,GF_SetIconLib,2,0,0,0)

' icône 3 sur colonne 5, à gauche
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,0,1,3)
' icône 4 sur cellule 5,3, à droite
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,3,2,4)

' chercher la map du grid
s$ = string$(3000," ")
res% = dll_call2("GetGridCellMap",SG%,adr(s$))
text 2,trim$(s$)

' autoriser la saisie
res% = dll_call6("GridFunction",SG%,GF_Edit,1,0,0,0)

' sauvegarder l'objet
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("SaveGridToFile",SG%,0,adr(s$))

' créer une autre form avec un autre grid
form 300 : width 300,690 : height 300,310 : caption 300,"Grille restaurée"
  top 300,200 : left 300,300
  clear 99
  item_add 99,"Width=100"
  item_add 99,"Height=100"
  item_add 99,"Rows=2"
  item_add 99,"Columns=2"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG2% = dll_call3("CreateStringGrid",handle(300),handle(99),handle(98))

' restaurer l'objet dans un autre grid
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,0,adr(s$))

' effacer le grid d'origine
res% = dll_call6("GridFunction",SG%,GF_Clear,0,0,0,0)

' effacer le grid copié
res% = dll_call6("GridFunction",SG2%,GF_Clear,0,0,0,0)

' charger juste les données dans le grid copié (la structure est restée intacte)
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,1,adr(s$))

end

sub RGB(R%,G%,B%) : ' produire une valeur RGB valide
 RGB% = (B%*256+R%)*256+G%
end_sub

clic:
'  caption 0,text$(98)    : ' ici, on a  déjà le numéro de ligne et de colonne dans Edit 98 !
  s$ = text$(98)
  s$ = mid$(s$,3,len(s$))
  SGclic% = val(left$(s$,instr(s$,"click=")-1))

  res% = dll_call6("GridFunction",SGclic%,GF_GetActiveCell,adr(x%),adr(y%),adr(status%),0)
  s$ = string$(255," ")
  res% = dll_call4("GetGridCellText",SGclic%,x%,y%,adr(s$))
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)+" = "+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridRowText",SGclic%,y%,adr(s$))
  message "Ligne="+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridColumnText",SGclic%,x%,adr(s$))
  message "Colonne="+trim$(s$)
  return
 
linup:
  if y%<=1 then return
  res% = dll_call6("GridFunction",SG%,30,0,0,0,0)
  y% = y% - 1
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)
  return
 
 
 
' définition de constantes pour le code fonction de GridFunction
sub GridConstants()
  if variable("GF_Edit")=1 then exit_sub
  dim GF_Edit                : GF_Edit                =  1  : ' saisie directe dans le GRID
  dim GF_CellColor            : GF_CellColor            =  2  : ' couleur d'une cellule
  dim GF_RowColor            : GF_RowColor            =  3  : ' couleur d'une ligne
  dim GF_ColColor            : GF_ColColor            =  4  : ' couleur d'une colonne
  dim GF_ActivateColor        : GF_ActivateColor        =  5  : ' activer les couleurs personnalisées
  dim GF_NormalRowColor      : GF_NormalRowColor      =  6  : ' couleur d'une ligne (sans parties fixes)
  dim GF_NormalColColor      : GF_NormalColColor      =  7  : ' couleur d'une colonne (sans parties fixes)
  dim GF_ActivateResetColor  : GF_ActivateResetColor  =  8  : ' activer les couleurs personnalisées (effacer liste existante)
  dim GF_TextAttributes      : GF_TextAttributes      =  9  : ' attributs du texte
  dim GF_ClearTextAttrib      : GF_ClearTextAttrib      = 10  : ' effacer tous les attributs pour le GRID
  dim GF_GetDimensions        : GF_GetDimensions        = 11  : ' retourner les dimensions du GRID
  dim GF_SetNonSelRect        : GF_SetNonSelRect        = 12  : ' définir un rectangle intouchable
  dim GF_SetNonModRect        : GF_SetNonModRect        = 13  : ' définir un rectangle non modifiable
  dim GF_GetActiveCell        : GF_GetActiveCell        = 14  : ' retourner les infos de la cellule active
  dim GF_SetLeftCB            : GF_SetLeftCB            = 15  : ' définir un rectangle de CheckBox gauches
  dim GF_SetRightCB          : GF_SetRightCB          = 16  : ' définir un rectangle de CheckBox droites
  dim GF_SetRowHeight        : GF_SetRowHeight        = 17  : ' définit la hauteur de lignes
  dim GF_SetColWidth          : GF_SetColWidth          = 18  : ' définir la largeur de colonnes
  dim GF_InsertRow            : GF_InsertRow            = 19  : ' insérer une ligne
  dim GF_InsertCol            : GF_InsertCol            = 20  : ' insérer une colonne
  dim GF_RemoveRow            : GF_RemoveRow            = 21  : ' supprimer une ligne
  dim GF_RemoveCol            : GF_RemoveCol            = 22  : ' supprimer une colonne
  dim GF_Clear                : GF_Clear                = 23  : ' effacer toutes les données
  dim GF_GetVersion          : GF_GetVersion          = 24  : ' retourner la version dans un string
  dim GF_SetProgressBar      : GF_SetProgressBar      = 25  : ' définir un rectangle de ProgressBar
  dim GF_SetProgressBarAttrib : GF_SetProgressBarAttrib = 26  : ' définir hauteur et couleur des ProgrssBars
  dim GF_SetIconLib          : GF_SetIconLib          = 27  : ' définir la ImageList des icones
  dim GF_SetIconID            : GF_SetIconID            = 28  : ' définir un numéro d'icône pour une zone
end_sub

Et voici le résultat:
KGF_dll - nouvelles versions - Page 19 Aa118
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptySam 16 Avr 2016 - 13:28

On a un souci pour le texte centré :
KGF_dll - nouvelles versions - Page 19 Captur22

Il manque le jour dans la colonne "date"
Les "X" de la colonne pointage ont disparu
et il ne reste plus que le "C" de "DOC" pour la colonne des doc associés...
Suspect
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptySam 16 Avr 2016 - 13:31

Intéressant... Je vais voir ça. Là, j'ai une piste précise, ce qui va m'aider.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptySam 16 Avr 2016 - 19:32

KGF.dll V6.34 du 16/04/2016
StringGrid version V6 du 16/04/2016


Nouveautés:
- StringGrid: affichage correct de cellules normales centrées avec ou sans icône

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

Cette version corrige un bug dans l'affichage de cellules centrées. Et voici le programme de démo, montrant la colonne 6 avec des cellules centrées:
Code:
' test_GridFunction_code_12.bas

' Ce programme teste le code 12 de GridFunction.
' Ce code permet de définir des rectangles dans un GRID
' pour lesquels la sélection est interdite.




label clic, linup

GridConstants()      : ' définir des constantes pour le code fonction de GridFunction

dim res%, l%, c%, RGB%, s$, x%, y%, status%, SG%, SG2%, SGclic%
dim M1% : M1% = 0 - 1
dim stat$(3)
  stat$(0) = "Normal"
  stat$(1) = "Libre"
  stat$(2) = "Sélectionnable"
  stat$(3) = "Bloqué"

dll_on "KGF.dll"

width 0,690 : height 0,310

edit 98 : ' hide 98
  top 98,300 : on_change 98,clic
height 0,380

memo 99 : hide 99
  item_add 99,"Width=660"
  item_add 99,"Height=260"
  item_add 99,"Rows=10"
  item_add 99,"Columns=10"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG% = dll_call3("CreateStringGrid",handle(0),handle(99),handle(98))
s$ = string$(255," ")
res% = dll_call6("GridFunction",SG%,GF_GetVersion,adr(s$),0,0,0)
caption 0,"Objet StringGrid "+trim$(s$)


for l%=1 to 10
  for c%=1 to 10
    s$ = str$(c%)+","+str$(l%)
    res% = dll_call4("WriteGridCell",SG%,c%,l%,adr(s$))
  next c%
next l%
s$ = "ABCD"
res% = dll_call4("WriteGridCell",SG%,9,4,adr(s$))
' passer la colonne 9 en gras, italique et cadrée à droite
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,9*65536,256+512+8192,0,0)
' passer la colonne 6 en cadrage centré
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,6*65536,4096,0,0)
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,0,0,0,0)

s$ = "10"
res% = dll_call4("WriteGridCell",SG%,6,10,adr(s$))
s$ = "80"
res% = dll_call4("WriteGridCell",SG%,7,10,adr(s$))

width 0,920
memo 2 : width 2,200 : left 2,660+20  : ' width(1)+20
height 2,260 : ' height(1)
font_name 2,"Courier"
display

button 3 : top 3,300 : left 3,200 : caption 3,"Ligne ^^^" : on_click 3,linup

' première zone interdite totalement
res% = dll_call6("GridFunction",SG%,GF_SetNonSelRect,3,2,5,3)

' seconde zone interdite en saisie uniquement
res% = dll_call6("GridFunction",SG%,GF_SetNonModRect,7,4,8,5)

' troisième zone CheckBox à gauche
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,6,4,9)

' quatrième zone CheckBox à droite
res% = dll_call6("GridFunction",SG%,GF_SetRightCB,6,7,9,8)

' Cinquième zone CheckBox à gauche dans zone interdite
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,2,4,3)

' Sixième zone CheckBox à droite dans zone protégée
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,7,4,7,5)

' taille et couleur des ProgressBars
res% = dll_call6("GridFunction",SG%,GF_SetProgressBarAttrib,12,255,0,0)
' Septième zone ProgressBar
res% = dll_call6("GridFunction",SG%,GF_SetProgressBar,6,10,7,10)

' activer les couleurs personnalisées
res% = dll_call6("GridFunction",SG%,GF_ActivateResetColor,1,0,0,0)

RGB(255,200,200)
for l%=2 to 3
  for c%=3 to 3 : ' 5
    ' couleur de la première zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

RGB(200,200,255)
for l%=4 to 5
  for c%=7 to 8
    ' couleur de la seconde zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

' utiliser la ImageList interne
res% = dll_call6("GridFunction",SG%,GF_SetIconLib,2,0,0,0)

' icône 3 sur colonne 5, à gauche
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,0,1,3)
' icône 4 sur cellule 5,3, à droite
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,3,2,4)

' chercher la map du grid
s$ = string$(3000," ")
res% = dll_call2("GetGridCellMap",SG%,adr(s$))
text 2,trim$(s$)

' autoriser la saisie
res% = dll_call6("GridFunction",SG%,GF_Edit,1,0,0,0)

' sauvegarder l'objet
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("SaveGridToFile",SG%,0,adr(s$))

' créer une autre form avec un autre grid
form 300 : width 300,690 : height 300,310 : caption 300,"Grille restaurée"
  top 300,200 : left 300,300
  clear 99
  item_add 99,"Width=100"
  item_add 99,"Height=100"
  item_add 99,"Rows=2"
  item_add 99,"Columns=2"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG2% = dll_call3("CreateStringGrid",handle(300),handle(99),handle(98))

' restaurer l'objet dans un autre grid
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,0,adr(s$))

' effacer le grid d'origine
res% = dll_call6("GridFunction",SG%,GF_Clear,0,0,0,0)

' effacer le grid copié
res% = dll_call6("GridFunction",SG2%,GF_Clear,0,0,0,0)

' charger juste les données dans le grid copié (la structure est restée intacte)
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,1,adr(s$))

end

sub RGB(R%,G%,B%) : ' produire une valeur RGB valide
 RGB% = (B%*256+R%)*256+G%
end_sub

clic:
'  caption 0,text$(98)    : ' ici, on a  déjà le numéro de ligne et de colonne dans Edit 98 !
  s$ = text$(98)
  s$ = mid$(s$,3,len(s$))
  SGclic% = val(left$(s$,instr(s$,"click=")-1))

  res% = dll_call6("GridFunction",SGclic%,GF_GetActiveCell,adr(x%),adr(y%),adr(status%),0)
  s$ = string$(255," ")
  res% = dll_call4("GetGridCellText",SGclic%,x%,y%,adr(s$))
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)+" = "+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridRowText",SGclic%,y%,adr(s$))
  message "Ligne="+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridColumnText",SGclic%,x%,adr(s$))
  message "Colonne="+trim$(s$)
  return
 
linup:
  if y%<=1 then return
  res% = dll_call6("GridFunction",SG%,30,0,0,0,0)
  y% = y% - 1
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)
  return
 
 
 
' définition de constantes pour le code fonction de GridFunction
sub GridConstants()
  if variable("GF_Edit")=1 then exit_sub
  dim GF_Edit                : GF_Edit                =  1  : ' saisie directe dans le GRID
  dim GF_CellColor            : GF_CellColor            =  2  : ' couleur d'une cellule
  dim GF_RowColor            : GF_RowColor            =  3  : ' couleur d'une ligne
  dim GF_ColColor            : GF_ColColor            =  4  : ' couleur d'une colonne
  dim GF_ActivateColor        : GF_ActivateColor        =  5  : ' activer les couleurs personnalisées
  dim GF_NormalRowColor      : GF_NormalRowColor      =  6  : ' couleur d'une ligne (sans parties fixes)
  dim GF_NormalColColor      : GF_NormalColColor      =  7  : ' couleur d'une colonne (sans parties fixes)
  dim GF_ActivateResetColor  : GF_ActivateResetColor  =  8  : ' activer les couleurs personnalisées (effacer liste existante)
  dim GF_TextAttributes      : GF_TextAttributes      =  9  : ' attributs du texte
  dim GF_ClearTextAttrib      : GF_ClearTextAttrib      = 10  : ' effacer tous les attributs pour le GRID
  dim GF_GetDimensions        : GF_GetDimensions        = 11  : ' retourner les dimensions du GRID
  dim GF_SetNonSelRect        : GF_SetNonSelRect        = 12  : ' définir un rectangle intouchable
  dim GF_SetNonModRect        : GF_SetNonModRect        = 13  : ' définir un rectangle non modifiable
  dim GF_GetActiveCell        : GF_GetActiveCell        = 14  : ' retourner les infos de la cellule active
  dim GF_SetLeftCB            : GF_SetLeftCB            = 15  : ' définir un rectangle de CheckBox gauches
  dim GF_SetRightCB          : GF_SetRightCB          = 16  : ' définir un rectangle de CheckBox droites
  dim GF_SetRowHeight        : GF_SetRowHeight        = 17  : ' définit la hauteur de lignes
  dim GF_SetColWidth          : GF_SetColWidth          = 18  : ' définir la largeur de colonnes
  dim GF_InsertRow            : GF_InsertRow            = 19  : ' insérer une ligne
  dim GF_InsertCol            : GF_InsertCol            = 20  : ' insérer une colonne
  dim GF_RemoveRow            : GF_RemoveRow            = 21  : ' supprimer une ligne
  dim GF_RemoveCol            : GF_RemoveCol            = 22  : ' supprimer une colonne
  dim GF_Clear                : GF_Clear                = 23  : ' effacer toutes les données
  dim GF_GetVersion          : GF_GetVersion          = 24  : ' retourner la version dans un string
  dim GF_SetProgressBar      : GF_SetProgressBar      = 25  : ' définir un rectangle de ProgressBar
  dim GF_SetProgressBarAttrib : GF_SetProgressBarAttrib = 26  : ' définir hauteur et couleur des ProgrssBars
  dim GF_SetIconLib          : GF_SetIconLib          = 27  : ' définir la ImageList des icones
  dim GF_SetIconID            : GF_SetIconID            = 28  : ' définir un numéro d'icône pour une zone
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyDim 17 Avr 2016 - 9:16

cheers Bravo Klaus,
tout est rentré dans l' ordre.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyDim 17 Avr 2016 - 11:30

KGF.dll V6.35 du 17/04/2016
StringGrid version V7 du 17/04/2016


Nouveautés:
- GridFunction: nouveau code 29: définir un rectangle de cellules avec format d'affichage

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Ce nouveau code permet de gérer des formats d'affichage pour des cellules de 3 types différents: textes simples, cellules numériques et dates et/ou heures. La doc donne la syntaxe de l'appel, et contient des liens vers des pages internet avec la description des formats possibles pour textes, nombres, dates et heures. Dans un premier temps, je n'ai pas intégré tout cela dans la doc - on peut aussi bien le consulter sur le net (nouvel onglet). Pour une valeur numérique, on peut afficher le code hexa, suivi d'un "H", par exemple, en spécifiant le format "%xH", alors que la cellule contient toujours le texte initial en décimal. En cas d'erreur de conversion, le contenu initial sera affiché, précédé d'un "?".

Le programme de démo définit un rectangle de cellules contenant la date du jour, et elle sera affichée avec le mois en clair, alors que la cellule contient le format issu de la fonction date$, à savoir jj/mm/aaaa.
Code:
' test_GridFunction_code_12.bas

' Ce programme teste le code 12 de GridFunction.
' Ce code permet de définir des rectangles dans un GRID
' pour lesquels la sélection est interdite.




label clic

GridConstants()      : ' définir des constantes pour le code fonction de GridFunction

dim res%, l%, c%, RGB%, s$, x%, y%, status%, SG%, SG2%, SGclic%
dim M1% : M1% = 0 - 1
dim stat$(3)
  stat$(0) = "Normal"
  stat$(1) = "Libre"
  stat$(2) = "Sélectionnable"
  stat$(3) = "Bloqué"

dll_on "KGF.dll"

width 0,690 : height 0,310

edit 98 : ' hide 98
  top 98,300 : on_change 98,clic
height 0,380

memo 99 : hide 99
  item_add 99,"Width=660"
  item_add 99,"Height=260"
  item_add 99,"Rows=10"
  item_add 99,"Columns=10"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG% = dll_call3("CreateStringGrid",handle(0),handle(99),handle(98))
s$ = string$(255," ")
res% = dll_call6("GridFunction",SG%,GF_GetVersion,adr(s$),0,0,0)
caption 0,"Objet StringGrid "+trim$(s$)


for l%=1 to 10
  for c%=1 to 10
    s$ = str$(c%)+","+str$(l%)
    res% = dll_call4("WriteGridCell",SG%,c%,l%,adr(s$))
  next c%
next l%
s$ = "ABCD"
res% = dll_call4("WriteGridCell",SG%,9,4,adr(s$))
' passer la colonne 9 en gras, italique et cadrée à droite
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,9*65536,256+512+8192,0,0)
' passer la colonne 6 en cadrage centré
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,6*65536,4096,0,0)
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,0,0,0,0)

s$ = "10"
res% = dll_call4("WriteGridCell",SG%,6,10,adr(s$))
s$ = "80"
res% = dll_call4("WriteGridCell",SG%,7,10,adr(s$))

width 0,920
memo 2 : width 2,200 : left 2,660+20   : ' width(1)+20
height 2,260 : ' height(1)
font_name 2,"Courier"
display

' première zone interdite totalement
res% = dll_call6("GridFunction",SG%,GF_SetNonSelRect,3,2,5,3)

' seconde zone interdite en saisie uniquement
res% = dll_call6("GridFunction",SG%,GF_SetNonModRect,7,4,8,5)

' troisième zone CheckBox à gauche
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,6,4,9)

' quatrième zone CheckBox à droite
res% = dll_call6("GridFunction",SG%,GF_SetRightCB,6,7,9,8)

' Cinquième zone CheckBox à gauche dans zone interdite
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,4,2,4,3)

' Sixième zone CheckBox à droite dans zone protégée
res% = dll_call6("GridFunction",SG%,GF_SetLeftCB,7,4,7,5)

' taille et couleur des ProgressBars
res% = dll_call6("GridFunction",SG%,GF_SetProgressBarAttrib,12,255,0,0)
' Septième zone ProgressBar
res% = dll_call6("GridFunction",SG%,GF_SetProgressBar,6,10,7,10)

' huitième zone "cellules formatées" comme date
s$ = date$
for l%=4 to 7
  for c%=2 to 3
    res% = dll_call4("WriteGridCell",SG%,c%,l%,adr(s$))
  next c%
next l%
s$ = "dd mmmm yyyy"
res% = dll_call6("GridFunction",SG%,GF_SetFormat,2*65536+4,3*65536+7,2,adr(s$))


' activer les couleurs personnalisées
res% = dll_call6("GridFunction",SG%,GF_ActivateResetColor,1,0,0,0)

RGB(255,200,200)
for l%=2 to 3
  for c%=3 to 3 : ' 5
    ' couleur de la première zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

RGB(200,200,255)
for l%=4 to 5
  for c%=7 to 8
    ' couleur de la seconde zone interdite
    res% = dll_call6("GridFunction",SG%,GF_CellColor,c%,l%,RGB%,0)
  next c%
next l%

' utiliser la ImageList interne
res% = dll_call6("GridFunction",SG%,GF_SetIconLib,2,0,0,0)

' icône 3 sur colonne 5, à gauche
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,0,1,3)
' icône 4 sur cellule 5,3, à droite
res% = dll_call6("GridFunction",SG%,GF_SetIconID,5,3,2,4)

' chercher la map du grid
s$ = string$(3000," ")
res% = dll_call2("GetGridCellMap",SG%,adr(s$))
text 2,trim$(s$)

' autoriser la saisie
res% = dll_call6("GridFunction",SG%,GF_Edit,1,0,0,0)

' sauvegarder l'objet
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("SaveGridToFile",SG%,0,adr(s$))
' créer une autre form avec un autre grid
form 300 : width 300,690 : height 300,310 : caption 300,"Grille restaurée"
  top 300,200 : left 300,300
  clear 99
  item_add 99,"Width=100"
  item_add 99,"Height=100"
  item_add 99,"Rows=2"
  item_add 99,"Columns=2"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=1"
SG2% = dll_call3("CreateStringGrid",handle(300),handle(99),handle(98))

' restaurer l'objet dans un autre grid
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,0,adr(s$))

' effacer le grid d'origine
res% = dll_call6("GridFunction",SG%,GF_Clear,0,0,0,0)

' effacer le grid copié
res% = dll_call6("GridFunction",SG2%,GF_Clear,0,0,0,0)

' charger juste les données dans le grid copié (la structure est restée intacte)
s$ = "Sauvegarde_StringGrid.txt"
res% = dll_call3("LoadGridFromFile",SG2%,1,adr(s$))

end

sub RGB(R%,G%,B%) : ' produire une valeur RGB valide
 RGB% = (B%*256+R%)*256+G%
end_sub

clic:
'  caption 0,text$(98)    : ' ici, on a  déjà le numéro de ligne et de colonne dans Edit 98 !
  s$ = text$(98)
  s$ = mid$(s$,3,len(s$))
  SGclic% = val(left$(s$,instr(s$,"click=")-1))

  res% = dll_call6("GridFunction",SGclic%,GF_GetActiveCell,adr(x%),adr(y%),adr(status%),0)
  s$ = string$(255," ")
  res% = dll_call4("GetGridCellText",SGclic%,x%,y%,adr(s$))
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)+" = "+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridRowText",SGclic%,y%,adr(s$))
  message "Ligne="+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridColumnText",SGclic%,x%,adr(s$))
  message "Colonne="+trim$(s$)
  return
  
' définition de constantes pour le code fonction de GridFunction
sub GridConstants()
  if variable("GF_Edit")=1 then exit_sub
  dim GF_Edit                 : GF_Edit                 =  1  : ' saisie directe dans le GRID
  dim GF_CellColor            : GF_CellColor            =  2  : ' couleur d'une cellule
  dim GF_RowColor             : GF_RowColor             =  3  : ' couleur d'une ligne
  dim GF_ColColor             : GF_ColColor             =  4  : ' couleur d'une colonne
  dim GF_ActivateColor        : GF_ActivateColor        =  5  : ' activer les couleurs personnalisées
  dim GF_NormalRowColor       : GF_NormalRowColor       =  6  : ' couleur d'une ligne (sans parties fixes)
  dim GF_NormalColColor       : GF_NormalColColor       =  7  : ' couleur d'une colonne (sans parties fixes)
  dim GF_ActivateResetColor   : GF_ActivateResetColor   =  8  : ' activer les couleurs personnalisées (effacer liste existante)
  dim GF_TextAttributes       : GF_TextAttributes       =  9  : ' attributs du texte
  dim GF_ClearTextAttrib      : GF_ClearTextAttrib      = 10  : ' effacer tous les attributs pour le GRID
  dim GF_GetDimensions        : GF_GetDimensions        = 11  : ' retourner les dimensions du GRID
  dim GF_SetNonSelRect        : GF_SetNonSelRect        = 12  : ' définir un rectangle intouchable
  dim GF_SetNonModRect        : GF_SetNonModRect        = 13  : ' définir un rectangle non modifiable
  dim GF_GetActiveCell        : GF_GetActiveCell        = 14  : ' retourner les infos de la cellule active
  dim GF_SetLeftCB            : GF_SetLeftCB            = 15  : ' définir un rectangle de CheckBox gauches
  dim GF_SetRightCB           : GF_SetRightCB           = 16  : ' définir un rectangle de CheckBox droites
  dim GF_SetRowHeight         : GF_SetRowHeight         = 17  : ' définit la hauteur de lignes
  dim GF_SetColWidth          : GF_SetColWidth          = 18  : ' définir la largeur de colonnes
  dim GF_InsertRow            : GF_InsertRow            = 19  : ' insérer une ligne
  dim GF_InsertCol            : GF_InsertCol            = 20  : ' insérer une colonne
  dim GF_RemoveRow            : GF_RemoveRow            = 21  : ' supprimer une ligne
  dim GF_RemoveCol            : GF_RemoveCol            = 22  : ' supprimer une colonne
  dim GF_Clear                : GF_Clear                = 23  : ' effacer toutes les données
  dim GF_GetVersion           : GF_GetVersion           = 24  : ' retourner la version dans un string
  dim GF_SetProgressBar       : GF_SetProgressBar       = 25  : ' définir un rectangle de ProgressBar
  dim GF_SetProgressBarAttrib : GF_SetProgressBarAttrib = 26  : ' définir hauteur et couleur des ProgrssBars
  dim GF_SetIconLib           : GF_SetIconLib           = 27  : ' définir la ImageList des icones
  dim GF_SetIconID            : GF_SetIconID            = 28  : ' définir un numéro d'icône pour une zone
  dim GF_SetFormat            : GF_SetFormat            = 29  : ' définir un rectabngle de cellules avec n format
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 1:47

Petite démo de format dans un StringGrid: 10 versions différentes d'afficher la même date:
Code:
' test_GridFunction_code_29.bas

' Ce programme teste le code 29 de GridFunction.
' Ce code permet de définir des rectangles de formats dans un GRID




label clic

GridConstants()      : ' définir des constantes pour le code fonction de GridFunction

dim res%, l%, c%, RGB%, s$, x%, y%, status%, SG%, SG2%, SGclic%
dim M1% : M1% = 0 - 1
dim stat$(3)
  stat$(0) = "Normal"
  stat$(1) = "Libre"
  stat$(2) = "Sélectionnable"
  stat$(3) = "Bloqué"

dll_on "KGF.dll"

width 0,690 : height 0,310

edit 98 : ' hide 98
  top 98,300 : on_change 98,clic
height 0,380

memo 99 : hide 99
  item_add 99,"Width=660"
  item_add 99,"Height=260"
  item_add 99,"Rows=10"
  item_add 99,"Columns=3"
  item_add 99,"FixedRows=1"
  item_add 99,"FixedColumns=0"
SG% = dll_call3("CreateStringGrid",handle(0),handle(99),handle(98))
s$ = string$(255," ")
res% = dll_call6("GridFunction",SG%,GF_GetVersion,adr(s$),0,0,0)
caption 0,"Objet StringGrid "+trim$(s$)
res% = dll_call6("GridFunction",SG%,GF_SetColWidth,2,150,0,0)
res% = dll_call6("GridFunction",SG%,GF_SetColWidth,3,150,0,0)


for l%=2 to 10
  s$ = date$
  res% = dll_call4("WriteGridCell",SG%,1,l%,adr(s$))
  s$ = date$
  res% = dll_call4("WriteGridCell",SG%,3,l%,adr(s$))
next l%
'  s$ = date$
'  res% = dll_call4("WriteGridCell",SG%,2,l%,adr(s$))

s$ = "Date"
res% = dll_call4("WriteGridCell",SG%,1,1,adr(s$))
s$ = "Format"
res% = dll_call4("WriteGridCell",SG%,2,1,adr(s$))
s$ = "Date formattée"
res% = dll_call4("WriteGridCell",SG%,3,1,adr(s$))


s$ = "d m y"
res% = dll_call4("WriteGridCell",SG%,2,2,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+2,3*65536+2,2,adr(s$))
s$ = "dd mm yy"
res% = dll_call4("WriteGridCell",SG%,2,3,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+3,3*65536+3,2,adr(s$))
s$ = "dd mm yyyy"
res% = dll_call4("WriteGridCell",SG%,2,4,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+4,3*65536+4,2,adr(s$))
s$ = "dd mmm yyyy"
res% = dll_call4("WriteGridCell",SG%,2,5,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+5,3*65536+5,2,adr(s$))
s$ = "dd mmmm yyyy"
res% = dll_call4("WriteGridCell",SG%,2,6,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+6,3*65536+6,2,adr(s$))
s$ = "ddd dd mmmm yyyy"
res% = dll_call4("WriteGridCell",SG%,2,7,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+7,3*65536+7,2,adr(s$))
s$ = "dddd dd mmmm yyyy"
res% = dll_call4("WriteGridCell",SG%,2,8,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+8,3*65536+8,2,adr(s$))
s$ = "ddddd"
res% = dll_call4("WriteGridCell",SG%,2,9,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+9,3*65536+9,2,adr(s$))
s$ = "dddddd"
res% = dll_call4("WriteGridCell",SG%,2,10,adr(s$))
res% = dll_call6("GridFunction",SG%,GF_SetFormat,3*65536+10,3*65536+10,2,adr(s$))


' activer les couleurs personnalisées
' res% = dll_call6("GridFunction",SG%,GF_ActivateResetColor,1,0,0,0)

end

clic:
'  caption 0,text$(98)    : ' ici, on a  déjà le numéro de ligne et de colonne dans Edit 98 !
  s$ = text$(98)
  s$ = mid$(s$,3,len(s$))
  SGclic% = val(left$(s$,instr(s$,"click=")-1))

  res% = dll_call6("GridFunction",SGclic%,GF_GetActiveCell,adr(x%),adr(y%),adr(status%),0)
  s$ = string$(255," ")
  res% = dll_call4("GetGridCellText",SGclic%,x%,y%,adr(s$))
  caption 0, "click colonne "+str$(x%) +" ligne "+str$(y%)+"  "+stat$(status%+1)+" = "+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridRowText",SGclic%,y%,adr(s$))
  message "Ligne="+trim$(s$)
  s$ = string$(255," ")
  res% = dll_call3("GetGridColumnText",SGclic%,x%,adr(s$))
  message "Colonne="+trim$(s$)
  return




' définition de constantes pour le code fonction de GridFunction
sub GridConstants()
  if variable("GF_Edit")=1 then exit_sub
  dim GF_Edit                 : GF_Edit                 =  1  : ' saisie directe dans le GRID
  dim GF_CellColor            : GF_CellColor            =  2  : ' couleur d'une cellule
  dim GF_RowColor             : GF_RowColor             =  3  : ' couleur d'une ligne
  dim GF_ColColor             : GF_ColColor             =  4  : ' couleur d'une colonne
  dim GF_ActivateColor        : GF_ActivateColor        =  5  : ' activer les couleurs personnalisées
  dim GF_NormalRowColor       : GF_NormalRowColor       =  6  : ' couleur d'une ligne (sans parties fixes)
  dim GF_NormalColColor       : GF_NormalColColor       =  7  : ' couleur d'une colonne (sans parties fixes)
  dim GF_ActivateResetColor   : GF_ActivateResetColor   =  8  : ' activer les couleurs personnalisées (effacer liste existante)
  dim GF_TextAttributes       : GF_TextAttributes       =  9  : ' attributs du texte
  dim GF_ClearTextAttrib      : GF_ClearTextAttrib      = 10  : ' effacer tous les attributs pour le GRID
  dim GF_GetDimensions        : GF_GetDimensions        = 11  : ' retourner les dimensions du GRID
  dim GF_SetNonSelRect        : GF_SetNonSelRect        = 12  : ' définir un rectangle intouchable
  dim GF_SetNonModRect        : GF_SetNonModRect        = 13  : ' définir un rectangle non modifiable
  dim GF_GetActiveCell        : GF_GetActiveCell        = 14  : ' retourner les infos de la cellule active
  dim GF_SetLeftCB            : GF_SetLeftCB            = 15  : ' définir un rectangle de CheckBox gauches
  dim GF_SetRightCB           : GF_SetRightCB           = 16  : ' définir un rectangle de CheckBox droites
  dim GF_SetRowHeight         : GF_SetRowHeight         = 17  : ' définit la hauteur de lignes
  dim GF_SetColWidth          : GF_SetColWidth          = 18  : ' définir la largeur de colonnes
  dim GF_InsertRow            : GF_InsertRow            = 19  : ' insérer une ligne
  dim GF_InsertCol            : GF_InsertCol            = 20  : ' insérer une colonne
  dim GF_RemoveRow            : GF_RemoveRow            = 21  : ' supprimer une ligne
  dim GF_RemoveCol            : GF_RemoveCol            = 22  : ' supprimer une colonne
  dim GF_Clear                : GF_Clear                = 23  : ' effacer toutes les données
  dim GF_GetVersion           : GF_GetVersion           = 24  : ' retourner la version dans un string
  dim GF_SetProgressBar       : GF_SetProgressBar       = 25  : ' définir un rectangle de ProgressBar
  dim GF_SetProgressBarAttrib : GF_SetProgressBarAttrib = 26  : ' définir hauteur et couleur des ProgrssBars
  dim GF_SetIconLib           : GF_SetIconLib           = 27  : ' définir la ImageList des icones
  dim GF_SetIconID            : GF_SetIconID            = 28  : ' définir un numéro d'icône pour une zone
  dim GF_SetFormat            : GF_SetFormat            = 29  : ' définir un rectabngle de cellules avec n format
end_sub

Et voici le résultat:
KGF_dll - nouvelles versions - Page 19 Aa120

C'est juste un exemple avec la date, mais l'heure est traitée de manière toute aussi intensive. On peut même combiner date et heure dans une même cellule comme ceci:
Code:
s$ = date$ + " " + time$
et écrire cette chaîne dans une cellule. Ensuite, on peut combiner les codes format de date et heure (ou date seulement ou heure seulement) pour affichage dans la cellule. Sans parler de toutes les possibilités de formatage des textes et valeurs numériques. Juste une info: une valeur numérique peut contenir un point décimal (cas normal) ou une virgule décimale (cas spécial de l'objet StringGrid, pas de Panoramic !), le résultat sera identique.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 7:30

Klaus,

J' ai un souci.
Si l' affichage d' une icone se fait bien au départ, celle ci est effacé avec le formatage des colonnes.
Il serait bien de spécifier à quel endroit nous devons faire les appels ou plutôt l' ordre des appels
pour avoir un affichage correct.

J' ai essayé de créer une sub pour afficher ou effacer une icone.
( le but est de remplacer "visuellement" le mot "DOC" par une petite icone ) 
mais cela ne fonctionne pas.

Code:
variables()
constantes()
labels()
init()
gui()
end

sub variables()
   dim no%
'  variables de SG
   dim ActiveCol%
   dim ActiveLin%
end_sub

sub constantes()
   dim_local i%
   dim titre$     : titre$ = "Essai Formatage StringGrid"
'  fichiers externes
   dim kgf$       : kgf$ = "C:\KGF\KGF.dll"
   dim ILtoolbar$ : ILtoolbar$ = "C:\ProgramPerso\PanoramicProject\Projets\GestCompte\img\GestCompte.ilb"
'  objets panoramic
   dim mm%     : no%=no%+1 : mm%=no%
   dim sm%(50) : for i%=1 to 50 : no%=no%+1 : sm%(i%)=no% : next i%
   dim pan%    : no%=no%+1 : pan%=no%
'  objets cachés pour objets kgf
   dim SGmemo% : no%=no%+1 : SGmemo%=no%
   dim SGedit% : no%=no%+1 : SGedit%=no%
'  objets kgf
   dim SG%
end_sub

sub labels()
   label clic,changeTB,change,close0
end_sub

sub init()
   dll_on kgf$
end_sub

sub gui()
   dim_local h%,w%,res%,sepcel$,seplin$,pol$,parnul%,RGBfond%,RGBpolice%,txt$

   height 0,500
   width 0,1000
   top 0,(screen_y-height(0))/2
   left 0,(screen_x-width(0))/2
   caption 0,titre$
  
   panel pan%
   full_space pan%
   h% = height(pan%)
   w% = width(pan%)
   hide pan%
  
   edit SGedit%
   hide SGedit%
   on_change SGedit%,change
  
   memo SGmemo%
   hide SGmemo%
   item_add SGmemo%,"Width="+str$(w%)
   item_add SGmemo%,"Height="+str$(h%)
   item_add SGmemo%,"Rows=50"
   item_add SGmemo%,"Columns=9"
   item_add SGmemo%,"FixedRows=1"
   item_add SGmemo%,"FixedColumns=0"
  
   sepcel$ = ";"
   seplin$ = "|"
   pol$    = "Times"
   parnul% = 0-1
  
   SG% = dll_call3("CreateStringGrid",handle(0),handle(SGmemo%),handle(SGedit%))
   res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$))
'   res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
   res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
   res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)
  
'   formatage des colonnes
'   col 1
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,1,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,1*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,1,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Opération"
      res% = DLL_call4("WriteGridCell",SG%,1,1,adr(txt$))
'   col 2
      RGB(215,240,250)
      RGBfond% = RGB%
      RGB(255,255,255)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,2,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,2*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,2,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Date"
      res% = DLL_call4("WriteGridCell",SG%,2,1,adr(txt$))
'   col 3
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,3,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,3*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,3,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Tiers"
      res% = DLL_call4("WriteGridCell",SG%,3,1,adr(txt$))
'   col 4
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,4,320,0,0)
      res% = DLL_call6("GridFunction",SG%,9,4*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,4,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Libellé"
      res% = DLL_call4("WriteGridCell",SG%,4,1,adr(txt$))
'   col 5
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,5,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,5*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,5,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Mode"
      res% = DLL_call4("WriteGridCell",SG%,5,1,adr(txt$))
'   col 6
      RGB(247,224,250)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,6,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,6*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,6,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Débits"
      res% = DLL_call4("WriteGridCell",SG%,6,1,adr(txt$))
'   col 7
      RGB(215,245,179)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,7,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,7*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,7,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Crédits"
      res% = DLL_call4("WriteGridCell",SG%,7,1,adr(txt$))
'   col 8
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,8,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,8*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,8,parnul%,RGBfond%,RGBpolice%)
      txt$ = "P"
      res% = DLL_call4("WriteGridCell",SG%,8,1,adr(txt$))
'   col 9
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,9,60,0,0)
      res% = DLL_call6("GridFunction",SG%,9,9*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,9,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Doc"
      res% = DLL_call4("WriteGridCell",SG%,9,1,adr(txt$))
'   activation des paramètres personnalisés
      res% = dll_call6("GridFunction",SG%,8,1,0,0,0)
end_sub

clic:
return

changeTB:
return

change:
   if number_change = SGedit%
      RecupColLin(text$(SGedit%))
      caption 0,titre$+" - ["+str$(ActiveCol%)+"."+str$(ActiveLin%)+"]"
      if ActiveCol%=9
         Icone()
      end_if
      return
   end_if
return

close0:
return

' produire une valeur RGB valide
sub RGB(R%,G%,B%)
 if variable("RGB%")=0 then dim RGB%
 RGB% = (B%*256+G%)*256+R%
end_sub

' récupération des coordonnées de la celulle active
sub RecupColLin(T$)
   dim_local sep%,txt$
   sep% = instr(T$,"=")
   if sep%>0
      txt$ = right$(T$,len(T$)-sep%)
      sep% = instr(txt$,",")
      ActiveCol% = val(left$(txt$,sep%-1))
      ActiveLin% = val(right$(txt$,len(txt$)-sep%))
   end_if
end_sub

' ajout/suppression d' une icone dans la celulle sélectionnée
sub icone()
   dim_local res%,txt$
   txt$ = string$(255," ")
   res% = DLL_call4("GetGridCellText",SG%,ActiveCol%,ActiveLin%,adr(txt$))
   txt$ = trim$(txt$)
   if txt$=""
      txt$ = "D"
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,7)
   else
      txt$ = " "
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,0,0)
   end_if
end_sub
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 12:32

KGF.dll V6.36 du 18/04/2016
StringGrid version V7 du 17/04/2016

Nouveautés:
- StringGrid: correction d'un bug avec affichage d'une icône dans une cellule centrée

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sources sont à jour.

@Ygeronimi:

Dans ton code,, il y avait plusieurs problèmes.
Le premier (et plus important) était un bug de l'affichage du texte en cas de cellule centrée avec icône. La présente version corrige cela.
Le deuxième est un problème d'ascenseur de fenêtre. Si une cellule avec icône se trouve dans une partie cachée ou partiellement cachée, avant, pendant ou après l'utilisation de l'ascenseur horizontal (et non vertical !), l'icône disparaît, et ce définitivement. Je n'ai pas encore trouvé comment corriger cela. Mais il y a un moyen de contourner cela, en agrandissant la fenêtre de sorte que cela ne se produise plus. Dans ton cas, il suffit d'ajouter 35 pixels ) la largeur de la fenêtre.
Le dernier est en fait juste une affaire d'optimisation de l'affichage. Il est plus performant de définir les icônes juste avant la fin de ta SUB GUI, en fait après l'activation des paramètres personnalisés. Le code ci-après reprend ces modifications (à utiliser avec la nouvelle version de la DLL):
Code:
variables()
constantes()
labels()
init()
gui()
end

sub variables()
  dim no%
'  variables de SG
  dim ActiveCol%
  dim ActiveLin%
end_sub

sub constantes()
  dim_local i%
  dim titre$    : titre$ = "Essai Formatage StringGrid"
'  fichiers externes
  dim kgf$      : kgf$ = "KGF.dll"
  dim ILtoolbar$ : ' ILtoolbar$ = "C:\ProgramPerso\PanoramicProject\Projets\GestCompte\img\GestCompte.ilb"
'  objets panoramic
  dim mm%    : no%=no%+1 : mm%=no%
  dim sm%(50) : for i%=1 to 50 : no%=no%+1 : sm%(i%)=no% : next i%
  dim pan%    : no%=no%+1 : pan%=no%
'  objets cachés pour objets kgf
  dim SGmemo% : no%=no%+1 : SGmemo%=no%
  dim SGedit% : no%=no%+1 : SGedit%=no%
'  objets kgf
  dim SG%
end_sub

sub labels()
  label clic,changeTB,change,close0
end_sub

sub init()
  dll_on kgf$
end_sub

sub gui()
  dim_local h%,w%,res%,sepcel$,seplin$,pol$,parnul%,RGBfond%,RGBpolice%,txt$

  height 0,500
  width 0,1000 +35  : ' <================= pour éviter l'ascenseur horizontal de la form
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2
  caption 0,titre$

  panel pan%
  full_space pan%
  h% = height(pan%)
  w% = width(pan%)
  hide pan%

  edit SGedit%
  hide SGedit%
  on_change SGedit%,change

  memo SGmemo%
  hide SGmemo%
  item_add SGmemo%,"Width="+str$(w%)
  item_add SGmemo%,"Height="+str$(h%)
  item_add SGmemo%,"Rows=50"
  item_add SGmemo%,"Columns=9"
  item_add SGmemo%,"FixedRows=1"
  item_add SGmemo%,"FixedColumns=0"

  sepcel$ = ";"
  seplin$ = "|"
  pol$    = "Arial" : ' "Times"
  parnul% = 0-1

  SG% = dll_call3("CreateStringGrid",handle(0),handle(SGmemo%),handle(SGedit%))
  res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$))
' <========== les lignes suivantes sont déplacées en fin de SUB
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
'  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
'  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)

'  formatage des colonnes
'  col 1
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,1,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,1*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,1,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Opération"
      res% = DLL_call4("WriteGridCell",SG%,1,1,adr(txt$))
'  col 2
      RGB(215,240,250)
      RGBfond% = RGB%
      RGB(255,255,255)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,2,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,2*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,2,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Date"
      res% = DLL_call4("WriteGridCell",SG%,2,1,adr(txt$))
'  col 3
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,3,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,3*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,3,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Tiers"
      res% = DLL_call4("WriteGridCell",SG%,3,1,adr(txt$))
'  col 4
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,4,320,0,0)
      res% = DLL_call6("GridFunction",SG%,9,4*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,4,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Libellé"
      res% = DLL_call4("WriteGridCell",SG%,4,1,adr(txt$))
'  col 5
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,5,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,5*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,5,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Mode"
      res% = DLL_call4("WriteGridCell",SG%,5,1,adr(txt$))
'  col 6
      RGB(247,224,250)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,6,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,6*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,6,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Débits"
      res% = DLL_call4("WriteGridCell",SG%,6,1,adr(txt$))
'  col 7
      RGB(215,245,179)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,7,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,7*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,7,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Crédits"
      res% = DLL_call4("WriteGridCell",SG%,7,1,adr(txt$))
'  col 8
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,8,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,8*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,8,parnul%,RGBfond%,RGBpolice%)
      txt$ = "P"
      res% = DLL_call4("WriteGridCell",SG%,8,1,adr(txt$))
'  col 9
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,9,60,0,0)
      res% = DLL_call6("GridFunction",SG%,9,9*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,9,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Doc"
      res% = DLL_call4("WriteGridCell",SG%,9,1,adr(txt$))
'  activation des paramètres personnalisés
      res% = dll_call6("GridFunction",SG%,8,1,0,0,0)
' <========== définition des icônes (lignes déplacées)
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)
end_sub

clic:
return

changeTB:
return

change:
  if number_change = SGedit%
      RecupColLin(text$(SGedit%))
      caption 0,titre$+" - ["+str$(ActiveCol%)+"."+str$(ActiveLin%)+"]"
      if ActiveCol%=9
        Icone()
      end_if
      return
  end_if
return

close0:
return

' produire une valeur RGB valide
sub RGB(R%,G%,B%)
 if variable("RGB%")=0 then dim RGB%
 RGB% = (B%*256+G%)*256+R%
end_sub

' récupération des coordonnées de la celulle active
sub RecupColLin(T$)
  dim_local sep%,txt$
  sep% = instr(T$,"=")
  if sep%>0
      txt$ = right$(T$,len(T$)-sep%)
      sep% = instr(txt$,",")
      ActiveCol% = val(left$(txt$,sep%-1))
      ActiveLin% = val(right$(txt$,len(txt$)-sep%))
  end_if
end_sub

' ajout/suppression d' une icone dans la celulle sélectionnée
sub icone()
  dim_local res%,txt$
  txt$ = string$(255," ")
  res% = DLL_call4("GetGridCellText",SG%,ActiveCol%,ActiveLin%,adr(txt$))
  txt$ = trim$(txt$)
  if txt$=""
      txt$ = "D"
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,7)
  else
      txt$ = " "
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,0)
  end_if
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 12:57

Klaus,

J' ai repris le code que tu as modifié + la nouvelle dll.

Si je définis la colonne 9 comme ayant des icones dans chaque celulle dès le départ.
Lorsque je joue avec la scroollbar de droite pour visualiser les lignes masquées, j' ai une playade de fenêtre panoramic.exe qui s'ouvre
au et à mesure de l' affichage des celulles cachées.

Puis au milieu de tout çà, j' ai eu droit à un message :
Le Canvas ne permet pas de dessiner
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 14:19

Je suis en train de regarder cela. La cause en est que de multiples demandes de réaffichage sont envoyées au Grid, et elles se "chevauchent" - une nouvelle demande arrive avant que la précédente ne soit terminée. Et cela pose des problèmes de mélange dans le canvas. Je suis en train de mettre au point une méthode de synchronisation.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyLun 18 Avr 2016 - 22:12

KGF.dll V6.37 du 18/04/2016
StringGrid version V8 du 18/04/2016


Nouveautés:
- StringGrid: suppression des ScrollBars iintégrées à l'objet
- GridFunction: nouveau code 30: scroller jusqu'à une ligne


Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Suite au problème de scroll soulevé par Ygeronimi, j'ai désactivé complètement les ScrollBars automatiques de l'objet StringGrid. Et en remplacement, j'ai ajouté le code 30 à GridFunction. Ce code permet de scroller directement à un numéro de ligne donné par par1%. Et là, tout marche bien. Il faut donc créer une Scroll_Bar Panoramic et gérer son évènement On_Change, pour appeler la fonction GridFunction avec le code 29 et la valeur de position de la Scroll_Bar. Pour le programme de Ygeronimi, ça donne cela:
Code:
' probleme_Ygeronimi_StringGrid.bas

variables()
constantes()
labels()
init()
gui()
end

sub variables()
  dim no%
'  variables de SG
  dim ActiveCol%
  dim ActiveLin%
end_sub

sub constantes()
  dim_local i%
  dim titre$    : titre$ = "Essai Formatage StringGrid"
'  fichiers externes
  dim kgf$      : kgf$ = "KGF.dll"
  dim ILtoolbar$ : ' ILtoolbar$ = "C:\ProgramPerso\PanoramicProject\Projets\GestCompte\img\GestCompte.ilb"
'  objets panoramic
  dim mm%    : no%=no%+1 : mm%=no%
  dim sm%(50) : for i%=1 to 50 : no%=no%+1 : sm%(i%)=no% : next i%
  dim pan%    : no%=no%+1 : pan%=no%
'  objets cachés pour objets kgf
  dim SGmemo% : no%=no%+1 : SGmemo%=no%
  dim SGedit% : no%=no%+1 : SGedit%=no%
  dim sb%    : no%=no%+1 : sb%=no%    : ' <================ sb%
'  objets kgf
  dim SG%
end_sub

sub labels()
  label clic,changeTB,change,close0,change_sb  : ' <================ change_sb
end_sub

sub init()
  dll_on kgf$
end_sub

sub gui()
  dim_local h%,w%,res%,sepcel$,seplin$,pol$,parnul%,RGBfond%,RGBpolice%,txt$

  height 0,500
  width 0,1000 +35  : ' <================= pour éviter l'ascenseur horizontal de la form
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2
  caption 0,titre$

  panel pan%
  full_space pan%
  h% = height(pan%)
  w% = width(pan%)
  hide pan%

  edit SGedit%
  hide SGedit%
  on_change SGedit%,change

  memo SGmemo%
  hide SGmemo%
  item_add SGmemo%,"Width="+str$(w%-30)
  item_add SGmemo%,"Height="+str$(h%)
  item_add SGmemo%,"Rows=50"
  item_add SGmemo%,"Columns=9"
  item_add SGmemo%,"FixedRows=1"
  item_add SGmemo%,"FixedColumns=0"

  sepcel$ = ";"
  seplin$ = "|"
  pol$    = "Arial" : ' "Times"
  parnul% = 0-1

  SG% = dll_call3("CreateStringGrid",handle(0),handle(SGmemo%),handle(SGedit%))
  res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$))
' <========== les lignes suivantes sont déplacées en fin de SUB
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
'  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
'  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)

' <========== créatioin d'une ScrollBar dans l'application
  scroll_bar sb% : vertical sb% : left sb%,w%-29 : height sb%,h%
    min sb%,2 : max sb%,49 : on_change sb%,change_sb

'  formatage des colonnes
'  col 1
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,1,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,1*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,1,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Opération"
      res% = DLL_call4("WriteGridCell",SG%,1,1,adr(txt$))
'  col 2
      RGB(215,240,250)
      RGBfond% = RGB%
      RGB(255,255,255)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,2,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,2*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,2,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Date"
      res% = DLL_call4("WriteGridCell",SG%,2,1,adr(txt$))
'  col 3
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,3,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,3*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,3,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Tiers"
      res% = DLL_call4("WriteGridCell",SG%,3,1,adr(txt$))
'  col 4
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,4,320,0,0)
      res% = DLL_call6("GridFunction",SG%,9,4*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,4,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Libellé"
      res% = DLL_call4("WriteGridCell",SG%,4,1,adr(txt$))
'  col 5
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,5,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,5*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,5,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Mode"
      res% = DLL_call4("WriteGridCell",SG%,5,1,adr(txt$))
'  col 6
      RGB(247,224,250)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,6,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,6*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,6,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Débits"
      res% = DLL_call4("WriteGridCell",SG%,6,1,adr(txt$))
'  col 7
      RGB(215,245,179)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,7,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,7*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,7,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Crédits"
      res% = DLL_call4("WriteGridCell",SG%,7,1,adr(txt$))
'  col 8
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,8,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,8*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,8,parnul%,RGBfond%,RGBpolice%)
      txt$ = "P"
      res% = DLL_call4("WriteGridCell",SG%,8,1,adr(txt$))
'  col 9
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,9,60,0,0)
      res% = DLL_call6("GridFunction",SG%,9,9*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,9,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Doc"
      res% = DLL_call4("WriteGridCell",SG%,9,1,adr(txt$))
'  activation des paramètres personnalisés
      res% = dll_call6("GridFunction",SG%,8,1,0,0,0)
' <========== définition des icônes (lignes déplacées)
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)
end_sub

clic:
return

change_sb:                : ' <============= évènement Scroll_Bar
  ScrollSG()
return

changeTB:
return

change:
  if number_change = SGedit%
      RecupColLin(text$(SGedit%))
      caption 0,titre$+" - ["+str$(ActiveCol%)+"."+str$(ActiveLin%)+"]"
      if ActiveCol%=9
        Icone()
      end_if
      return
  end_if
return

close0:
return

' déplacer la visualisation du SG        <========== gestion de la Scroll_Bar
sub ScrollSG()
  dim_local scr%, res%
  scr% = position(sb%)
  res% = DLL_call6("GridFunction",SG%,30,scr%,0,0,0)
end_sub

' produire une valeur RGB valide
sub RGB(R%,G%,B%)
 if variable("RGB%")=0 then dim RGB%
 RGB% = (B%*256+G%)*256+R%
end_sub

' récupération des coordonnées de la celulle active
sub RecupColLin(T$)
  dim_local sep%,txt$
  sep% = instr(T$,"=")
  if sep%>0
      txt$ = right$(T$,len(T$)-sep%)
      sep% = instr(txt$,",")
      ActiveCol% = val(left$(txt$,sep%-1))
      ActiveLin% = val(right$(txt$,len(txt$)-sep%))
  end_if
end_sub

' ajout/suppression d' une icone dans la celulle sélectionnée
sub icone()
  dim_local res%,txt$
  txt$ = string$(255," ")
  res% = DLL_call4("GetGridCellText",SG%,ActiveCol%,ActiveLin%,adr(txt$))
  txt$ = trim$(txt$)
  if txt$=""
      txt$ = "D"
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,7)
  else
      txt$ = " "
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,0)
  end_if
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyMar 19 Avr 2016 - 18:34

Aïe, aïe, aïe...

Les fenêtre panoramic persiste si l' utilisateur joue trop vite de la scrollbar et cela bloque tout.
Je pense, qu' il serait souhaitable de mettre entre parenthèses les fonctions d' icône
le temps de trouver une solution et de débloquer les scrollbar de l' objet qui sont utiles et évitent la profusions d' objets.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyMar 19 Avr 2016 - 19:19

Tu as une mitraillette dans les doigts... Je n'ai plus rencontré ce problème.

De toutes façons, je continue de travailler dessus. en particulier avec une barre de défilement privative, propre au StringGrid. On verra bien. si en attendant, tu peux désactiver les icônes...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyMar 19 Avr 2016 - 23:57

KGF_dll - nouvelles versions - Page 19 Rambo_cartoon_Machine-Gun

Non Klaus je me sers du défilement en faisant glisser la barre.
Click gauche (en restant appuyé), je simule la roulette...
KGF_dll - nouvelles versions - Page 19 3
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyMer 20 Avr 2016 - 0:36

Citation :
Click gauche (en restant appuyé), je simule la roulette...
Dans la version que le suis en train de mettre au point, cela marche déjà correctement, pour la scrollbar verticale. Je suis en train de mettre au point la scrollbar horizontale, pour être complet...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyVen 22 Avr 2016 - 16:32

KGF.dll V6.38 du 22/04/2016
StringGrid version V9 du 22/04/2016


Nouveautés:
- CreateStringGrid: création automatique des scrollbars nécessaires

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

Ne pouvant utiliser les scrollbars appartenant en propre au StringGrid, je les avais désactivés. Il fallait donc les remplacer par des scrollbars Panoramic et gérer les déplacements soi-même. Ceci est maintenant réglé par la création automatique de scrollbars par la fonction CreateStringGrid, selon les besoins, en fonction des valeurs de largeur et hauteur ainsi que du nombre de lignes et colonnes. Chaque scrollbar a deux boutons pour un déplacement d'une ligne ou une colonne, en avant ou en arrière. Un clic dans la zone libre de la scrollbar déplace instantanément la vue de sorte à rendre l'enregistrement visé visible. On peut aussi faire glisser le curseur. Ce dernier indique en permanence une information sur la ligne et la colonne ciblée.

Voici le code de Ygéronimi, adapté pour celle version. Je l'ai volontairement réduit en largeur pour provoquer l'apparition de l'ascencent horizontal:
Code:
' probleme_Ygeronimi_StringGrid.bas

variables()
constantes()
labels()
init()
gui()
end

sub variables()
  dim no%
'  variables de SG
  dim ActiveCol%
  dim ActiveLin%
end_sub

sub constantes()
  dim_local i%
  dim titre$    : titre$ = "Essai Formatage StringGrid"
'  fichiers externes
  dim kgf$      : kgf$ = "KGF.dll"
  dim ILtoolbar$ : ' ILtoolbar$ = "C:\ProgramPerso\PanoramicProject\Projets\GestCompte\img\GestCompte.ilb"
'  objets panoramic
  dim mm%    : no%=no%+1 : mm%=no%
  dim sm%(50) : for i%=1 to 50 : no%=no%+1 : sm%(i%)=no% : next i%
  dim pan%    : no%=no%+1 : pan%=no%
'  objets cachés pour objets kgf
  dim SGmemo% : no%=no%+1 : SGmemo%=no%
  dim SGedit% : no%=no%+1 : SGedit%=no%
'  objets kgf
  dim SG%
end_sub

sub labels()
  label clic,changeTB,change,close0
end_sub

sub init()
  dll_on kgf$
end_sub

sub gui()
  dim_local h%,w%,res%,sepcel$,seplin$,pol$,parnul%,RGBfond%,RGBpolice%,txt$

'  height 0,500
'  width 0,1000  : ' <================= pour éviter l'ascenseur horizontal de la form
  width 0,500  : ' <================= pour utiliser l'ascenseur horizontal de la form
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2
  caption 0,titre$

  panel pan%
  full_space pan%
  h% = height(pan%)
  w% = width(pan%)
  hide pan%

  edit SGedit%
  hide SGedit%
  on_change SGedit%,change

  memo SGmemo%
  hide SGmemo%
  item_add SGmemo%,"Width="+str$(w%-30)
  item_add SGmemo%,"Height="+str$(h%)
  item_add SGmemo%,"Rows=50"
  item_add SGmemo%,"Columns=9"
  item_add SGmemo%,"FixedRows=1"
  item_add SGmemo%,"FixedColumns=0"

  sepcel$ = ";"
  seplin$ = "|"
  pol$    = "Arial" : ' "Times"
  parnul% = 0-1

  SG% = dll_call3("CreateStringGrid",handle(0),handle(SGmemo%),handle(SGedit%))
  res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$))
' <========== les lignes suivantes sont déplacées en fin de SUB
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
'  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
'  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)

  height 0,height(0) + 30  : ' <================ pour afficher la scrollbar horizontale

'  formatage des colonnes
'  col 1
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,1,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,1*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,1,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Opération"
      res% = DLL_call4("WriteGridCell",SG%,1,1,adr(txt$))
'  col 2
      RGB(215,240,250)
      RGBfond% = RGB%
      RGB(255,255,255)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,2,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,2*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,2,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Date"
      res% = DLL_call4("WriteGridCell",SG%,2,1,adr(txt$))
'  col 3
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,3,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,3*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,3,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Tiers"
      res% = DLL_call4("WriteGridCell",SG%,3,1,adr(txt$))
'  col 4
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,4,320,0,0)
      res% = DLL_call6("GridFunction",SG%,9,4*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,4,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Libellé"
      res% = DLL_call4("WriteGridCell",SG%,4,1,adr(txt$))
'  col 5
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,5,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,5*65536+0,10,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,5,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Mode"
      res% = DLL_call4("WriteGridCell",SG%,5,1,adr(txt$))
'  col 6
      RGB(247,224,250)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,6,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,6*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,6,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Débits"
      res% = DLL_call4("WriteGridCell",SG%,6,1,adr(txt$))
'  col 7
      RGB(215,245,179)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,7,100,0,0)
      res% = DLL_call6("GridFunction",SG%,9,7*65536+0,8202,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,7,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Crédits"
      res% = DLL_call4("WriteGridCell",SG%,7,1,adr(txt$))
'  col 8
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,8,40,0,0)
      res% = DLL_call6("GridFunction",SG%,9,8*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,8,parnul%,RGBfond%,RGBpolice%)
      txt$ = "P"
      res% = DLL_call4("WriteGridCell",SG%,8,1,adr(txt$))
'  col 9
      RGB(255,255,255)
      RGBfond% = RGB%
      RGB(0,0,0)
      RGBpolice% = RGB%
      res% = DLL_call6("GridFunction",SG%,18,9,60,0,0)
      res% = DLL_call6("GridFunction",SG%,9,9*65536+0,4106,adr(pol$),RGBpolice%)
      res% = DLL_call6("GridFunction",SG%,4,9,parnul%,RGBfond%,RGBpolice%)
      txt$ = "Doc"
      res% = DLL_call4("WriteGridCell",SG%,9,1,adr(txt$))
'  activation des paramètres personnalisés
      res% = dll_call6("GridFunction",SG%,8,1,0,0,0)
' <========== définition des icônes (lignes déplacées)
'  res% = DLL_call6("GridFunction",SG%,27,3,adr(ILtoolbar$),0,0)
  res% = DLL_call6("GridFunction",SG%,27,2,0,0,0)
  res% = DLL_call6("GridFunction",SG%,28,9,0,1,7)
end_sub

clic:
return

changeTB:
return

change:
  if number_change = SGedit%
      RecupColLin(text$(SGedit%))
      caption 0,titre$+" - ["+str$(ActiveCol%)+"."+str$(ActiveLin%)+"]"
      if ActiveCol%=9
        Icone()
      end_if
      return
  end_if
return

close0:
return

' produire une valeur RGB valide
sub RGB(R%,G%,B%)
 if variable("RGB%")=0 then dim RGB%
 RGB% = (B%*256+G%)*256+R%
end_sub

' récupération des coordonnées de la celulle active
sub RecupColLin(T$)
  dim_local sep%,txt$
  sep% = instr(T$,"=")
  if sep%>0
      txt$ = right$(T$,len(T$)-sep%)
      sep% = instr(txt$,",")
      ActiveCol% = val(left$(txt$,sep%-1))
      ActiveLin% = val(right$(txt$,len(txt$)-sep%))
  end_if
end_sub

' ajout/suppression d' une icone dans la celulle sélectionnée
sub icone()
  dim_local res%,txt$
  txt$ = string$(255," ")
  res% = DLL_call4("GetGridCellText",SG%,ActiveCol%,ActiveLin%,adr(txt$))
  txt$ = trim$(txt$)
  if txt$=""
      txt$ = "D"
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,7)
  else
      txt$ = " "
      res% = DLL_call4("WriteGridCell",SG%,ActiveCol%,ActiveLin%,adr(txt$))
      res% = DLL_call6("GridFunction",SG%,28,ActiveCol%,ActiveLin%,1,0)
  end_if
end_sub
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyDim 24 Avr 2016 - 15:34

Bonjour Klaus !

Je viens de détecter un petit désagrément dans l'utilisation de DESIGNER.
En déplaçant un objet sélectionné qui est dans un form, on a un affichage de chiffres dans le caption du form...
Surement un test que tu n'a pas retiré. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyDim 24 Avr 2016 - 16:14

Désolé, ça m'avait échappé. C'est corrigé.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyDim 24 Avr 2016 - 16:18

Merci Klaus ! Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 19 EmptyLun 25 Avr 2016 - 13:26

Klaus,

Je vais te faire une demande qui va te paraître incongrue.
Pourrais tu revenir à la version 6.31 pour l' objet StringGrid ?
L' ajout d' icônes dans un grid, c' est mignon mais cela pourri le visuel en remplaçant les ScrollBar 
par d'autres que les siennes.
Si l' objet n' en veut pas, il n' en veut pas, tant pis. Vouloir absolument le faire ressemble
( et j' en suis un spécialiste  Wink ) à de l' entêtement.

Les grandes avancées de la coloration des cellules et du texte qui font très pro,
sont gâchées par des ScrollBar dont je ne dirai pas l' impression visuel qu' elle me donne.
Ce qui n' empêche pas de garder le travail de recherche pour l' avenir, où, qui sait, une nouvelle
librairie permettra de le faire proprement.

Donc, voilà ma demande incongrue.

Ou alors, lies la désactivation des ScrollBar propre à StringGrid à l' utilisation seule des icônes.
Celui qui veut absolument des icônes, se paie seul les vilaines ScrollBar.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 19 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 19 EmptyLun 25 Avr 2016 - 14:07

Plusieurs éléments de réponse, Ygeronimi.

1. L'apparition des ScrollBars n'est pas liée à la présence des icônes. Elle est uniquement conditionnée par l'écart entre la largeur du grid à l'écran et la taille qu'il faudrait pour l'afficher en entier. Et ceci est vrai, séparément, pour la dimension horizontrale et verticale.

2. Si tu ne veux pas les icônes, tout simplement tu ne les utilises pas. Cela n'a aucune autre influence sur le conditionnement du grid. Cependant, je ne vois pas le lien entre les icônes du grid et celles d'une toolbar. Tu peux parfaitement avoir les librairies (fichiers ILB) différentes, pour l'une et pour l'autre. Tu peux même avoir une librairie ILB différente pour chaque grid. Si ce n'est pas du luxe, ça...

3. L'aspect visuel des scrollbars est évidemment à revoir. J'ai dû créer un composant complètement indépendant de Panoramic, étant donné que les scrollbars automatiques du grid déclenchent des évènements intempestifs qui perturbent l'affichage complexe de cet objet. Je prévois de les rendre optionnels, via un paramètre. On pourra alors utiliser des scrollbars Panoramic, comme je l'avais montré dans ma version précédente. Cette option viendra bientôt.

4. De manière générale, je ne peux pas revenir, même partiellement, à une version antérieure de KGF.dll. Les sources actuelles comprennent 1529 fichiers dans 38 dossiers, pour 183 Mo de volume.Est-ce que tu as une petite idée de ce que représenterait la navigation entre différentes versions ? N'oublie pas: ce n'est pas professionnel. Je suis un retraité qui programme pour son plaisir. Certes, la reconnaissance des Panoramiciens est une grande récompense pour moi, mais sache que je ne fais pas que ça, dans la vie: j'ai une famille, j'ai des activités sociales dans ma commune, le jardinage, le bricolage et j'en passe. Alors, je fais ce que je peux, souvent la nuit, pour faire avancer KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 19 sur 40Aller à la page : Précédent  1 ... 11 ... 18, 19, 20 ... 29 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

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: