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 30 Emptypar Pedro Aujourd'hui à 10:37

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

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

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

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

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

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

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

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

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

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

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

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

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

» fichier.exe
KGF_dll - nouvelles versions - Page 30 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 : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 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 ... 16 ... 29, 30, 31 ... 35 ... 40  Suivant
AuteurMessage
Yannick




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

KGF_dll - nouvelles versions - Page 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 14:19

Klaus,

J' ai placé une version de mon "PanoBudget" avec bug sur mon webdav.
Cette version bug depuis les changements de formatage des nombres dans les cellules.
Et tous les bugs (enfin ceux auxquels j' ai eu droit) viennent lorsque je charge une sauvegarde.

Deux idées :
 
soit tu as oublié de reporter une modif dans les fonctions Save/Load
soit Panoramic par en cacahuète.

car les messages que j' ai sont parfois incohérents avec des pointages de ligne d' erreur
douteux. Ex: une ligne qui ne contient que "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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 14:29

Je vais tester cela.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 14:45

Je prends un exemple :

-je lance le programme
-je crée un Budget
-Je sauvegarde ce budget sans rien ajouter
-je clique sur ouvrir
-je charge le budget sauvegardé
-je rentre une valeur dans une cellule correspondant à une rubrique
-je quitte la cellule par la flèche "bas" du clavier
(ce qui, jusqu' à présent, fonctionne lors de la création d' un budget)

et là affraid patatra...
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 14:46

Je ne vois rien d'anormal au niveau des sauvegardes et restaurations. Regarde le programme de démo suivant. J'y ai défini 3 rectangles (d'une cellule chacun) avec un format différent, j'ai chargé la valeur 1234.56 dans chacune. Puis le grid est sauvegardé, on crée second grid et on restaure la sauvegarde dans le second grid. Et on retrouve tout - données et format, correctement.
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, sortir

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

dim res%, l%, c%, RGB%, s$, x%, y%, status%, SG%, SG2%, SGclic%, c1$, c2$, c3$
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 97 : ' hide 97
  top 97,300 : width 97,180 : left 97,250
edit 98 : ' hide 98
  top 98,300 : width 98,130 : 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,GF_Bold%+GF_Italic%+GF_Right%,0,0)
' passer la colonne 6 en cadrage centré
res% = dll_call6("GridFunction",SG%,GF_TextAttributes,6*65536,GF_Center%,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,150 : caption 3,"Sortir" : on_click 3,sortir

' 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)

' placer une valeur numérique dans les cellules 10,2, 10,3 et 10,4:
s$ = "1234.56"
res% = dll_call4("WriteGridCell",SG%,10,2,adr(s$))
res% = dll_call4("WriteGridCell",SG%,10,3,adr(s$))
res% = dll_call4("WriteGridCell",SG%,10,4,adr(s$))
' formater la cellule 10,2
s$ = "%g"  : ' général
res% = dll_call6("GridFunction",SG%,GF_SetFormat,10*65536+2,10*65536+2,1,adr(s$))
' formater la cellule 10,3
s$ = "%n"  : ' numérique
res% = dll_call6("GridFunction",SG%,GF_SetFormat,10*65536+3,10*65536+3,1,adr(s$))
' formater la cellule 10,4
s$ = "%m"  : ' monétaire
res% = dll_call6("GridFunction",SG%,GF_SetFormat,10*65536+4,10*65536+4,1,adr(s$))


' 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,450
  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$))


' relire le texte numérique formaté des cellules formatées:
c1$ = string$(20," ")
c2$ = string$(20," ")
c3$ = string$(20," ")
res% = dll_call4("GetNumericGridCellText",SG2%,10,2,adr(c1$))
res% = dll_call4("GetNumericGridCellText",SG2%,10,3,adr(c2$))
res% = dll_call4("GetNumericGridCellText",SG2%,10,4,adr(c3$))
message "(10,2)="+str$(val(trim$(c1$)))+"  "+"(10,3)="+str$(val(trim$(c2$)))+"  "+"(10,4)="+str$(val(trim$(c3$)))

' déclarer le EDIT pour le changement de cellules
' choisir une des deux solutions suivantes:
  ' avec par2%=1 pour signaler toutes les sorties d'une cellule
    res% = dll_call6("GridFunction",SG2%,CellChangeEditHandle,handle(97),GF_Yes,0,0)
  ' avec par2%=0 pour signaler uniquement les sorties d'une cellule modifiée
    ' res% = dll_call6("GridFunction",SG2%,CellChangeEditHandle,handle(97),GF_No,0,0)
end

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

sortir:
  message "sauvegarde"
  s$ = "Sauvegarde_StringGrid2.txt"
  res% = dll_call3("SaveGridToFile",SG2%,0,adr(s$))
  message "fini"
  res% = dll_call1("KillProcessByHandle",handle(0))
 
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
  dim GF_Scroll              : GF_Scroll              = 30  : ' scroller jusqu'à une ligne donnée
  dim GF_ScrollBars          : GF_ScrollBars          = 31  : ' autoriser les scrollbars ou non
  dim CellChangeEditHandle    : CellChangeEditHandle    = 32  : ' handle d'un EDIT recevant les messages de changement de cellule

  dim GF_Bold%                : GF_Bold%                =  256 : ' texte en gras
  dim GF_Italic%              : GF_Italic%              =  512 : ' texte en italique
  dim GF_Underline%          : GF_Underline%          = 1024 : ' texte souligné
  dim GF_Strikeout%          : GF_Strikeout%          = 2048 : ' texte barré
  dim GF_Left%                : GF_Left%                =    0 : ' cadré à gauche
  dim GF_Center%              : GF_Center%              = 4096 : ' centré
  dim GF_Right%              : GF_Right%              = 8192 : ' cadré à droite

  dim GF_No                  : GF_No                  = 0    : ' pour différentes options
  dim GF_Yes                  : GF_Yes                  = 1    : ' pour différentes options
end_sub

Je crains que, si tu as un problème, cela ne vienne d'ailleurs. Analyse le fichier de sauvegarde. Est-ce qu'il y a une anomalie dans les données enregistrées pour les cellules ?
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 14:48

On s'est croisé. Il faudra que tu fasses un ZIP pour cela, avec un mode d'emploi précis pour provoquer le crash, et je pourrai le tracer...
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 15:11

Le zip avec la version bugguer est sur mon webdav
mais pour l' apparition des bugs, à chaque lancement je n' ai jamais la même chose.

Pour ce qui est d' une incohérence dans le fichier de sauvegarde, la seule que je relève est que les valeurs sauvegardées sont celles entrées et non celles affichées :

je rentre 100 il est affiché 100,00 € et sauvegardé 100
je rentre 100.00 il est affiché 100,00 € et sauvegardé 100.00




Edit: Autre chose, tu charge la sauvegardes dans un grid différent 
dans mon programme, je détruit le grid en crée un nouveau avant de charger la sauvegarde.
Peut être y a t il une question de délai entre les fonctions. scratch
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 17:34

Citation :
les valeurs sauvegardées sont celles entrées et non celles affichées
ça, c'est normal. On sauvegarde le contenu physique de la cellule. Ce que tu vois à l'écran, c'est juste la donnée reformatée pour affichage, pas le contenu de la cellule.

Je vais regarder le ZIP ce soir.
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 17:52

La fonction GetWindowsFoldersPath est maintenant entièrement documentée. On la trouve dans la section "Gestion des fichiers". Il suffit de recharger KGF.chm, la DLL n'est pas modifiée.
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 18:01

Merci Klaus !

Très intéressante cette petite fonction GetWindowsFoldersPath.
J'ai déjà quelques idées en tête...
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyMer 1 Juin 2016 - 18:49

@ Klaus,

Pourtant, je crois que j' ai mis le doigt sur quelque chose.

Test n° 1245859967987857

Je lance le programme
Je crée un Budget  (simple Loyer puis charges locatives et enfin salaire)
je rentre 500.00 en loyer
je rentre 100 en charges locatives
tout va bien, je sauvegarde.
je quitte le programme

je regarde dans le fichier de sauvegarde:

j' ai 500.00 en loyer
et 100 en charges locatives

je relance le programme
Ouvrir (selection de la sauvegarde)
Valider

Plantage, même pas de message, enfin si : Panoramic a cessé de fonctionner

je vais dans le fichier de sauvegarde
je change 100 en 100.00

je relance le programme
etc...

Affichage correct, pas de plantage à première vue.

Lors d' un essai avant il me signalait une erreur sur la ligne :
res% = DLL_call4("GetGridCellText",SG%,2,NbreRows%,adr(txt$))

je n' ai pas changé pour la fonction numérique, vu que j' avais fait la modif nécessaire en 
panoramic pour cette fonction et que l' erreur panoramic était résolu.

Maintenant, je vais faire le test avec la fonction numérique... drunken
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 13:01

KGF.dll V6.81 du 02/06/2016

Nouveautés:
- StringGrid: en mode "édition directe", on génère maintenant un évènement lors de la frappe de Return

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sources sont à jour.

J'ai ajouté cet évènement afin de pouvoir valider une saisie directe dès la frappe de Return, sans avoir besoin de cliquer dans une autre cellule. L'évènement généré est:
Citation :
SGn...nleave=x,y=d...d si la cellule est effectivement quittée
SGn...nreturn=x,y=d...d si la touche RETURN a été frappée
On peut donc même faire la distinction entre un clic dans une autre cellule et la frappe d'un Return.

Je l'ai testé avec le programme de Ygeronimi. Il a fallu adapter la routine évènement, car, après avoir désactivé le ON_CHANGE sur les objets EDIT recevant les évènements, il n'y avait pas de ON_CHANGE. Donc, les routines évènements sont devenus ceci:
Code:
...
'  ***********************
 
  if number_change = SGedit%
      off_change SGedit%
      RecupInfoFromStringGrid()
      on_change SGedit%,change
      return
  end_if
 
'  ***********************
 
  if number_change = SGeditEvent%
      off_change SGeditEvent%
        DetectCellChange()
        MajAffichResteAV()
        on_change SGeditEvent%,change
      return
  end_if
...
Et, automatiquement, les totaux se font dès la frappe de Return, tout comme lors d'un clic dans une autre cellule. C'est donc un fonctionnement plus intuitif.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 13:55

Je vais rechargé la dll vite, très vite...
Laughing

PS: As tu pu voir un peu les bugs ?
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 14:07

Non, pas encore. Je vais faire ça maintenant. Je voulais finir ce truc du Return avant de toucher à un autre aspect de cette partie de la DLL.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 14:14

En tout cas, le return fonctionne au poil.
Bravo Klaus.

Là, j' ai un rendez vous que malheureusement je ne peux éviter Wink
mais je serai de retour vers 16h30.
N' hésites pas à me poser des questions, je réponds dès que je rentre.

Autant j' ai laissé certains programmes de côté, autant celui là je tiens à le finir
et proprement.

Les avancés de celui là me permettront de mettre à jour une version avec kgf
de GestCompte.

Il me faudra faire les fichiers d' aide et là je suis sûr que tu compatiras à ma douleur Laughing
mais je tiens à ces deux logiciels.
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 19:34

Voici la solution du "bug". Il y en avait en fait 2, un provenant de ton code et l'autre étant un bug Panoramic (rien que ça !).

1. après le chargement du StringGrid, tu mettais un WAIT de 50 millisecondes. Cela bloque pendant 50 ms l'exécution des évènements (regarde l'aide...) et perturbe ainsi le système. Sache que la fonction LoadGridFromFile retourne lorsque l'opération est entièrement terminée - il n'y a pas besoin d'attendre plus !
2. dans ma sub OpenBudgetFile, tu utilises une variable locale txt$ pour récupérer le texte de certaines cellules. Et ça plante ! Il faut que ce soit une variable globale, et ne me demande surtout pas pourquoi ! J'ai défini une variable globale ktxt$, et ça marche parfaitement.

Accessoirement, j'ai remplacé ton système de décodage d'une valeur numérique par la nouvelle fonction. Donc, voici la sub OpenBudgetFile qui fonctionne:
Code:
sub OpenBudgetFile()
  dim_local res%,f$,txt$,sep1%,sep2%,a$,b$

  open_dialog OpenDial%
  Dir_dialog OpenDial%,Dir_File$
  filter OpenDial%,"*.txt|*.txt"
  f$=file_name$(OpenDial%)
  delete OpenDial%
  if f$<>"_"
      clear DlBudgetFile%
      file_load DlBudgetFile%,f$
      NbreRows% = val(trim$(item_read$(DlBudgetFile%,3)))
      CreateNewStringGrid()
      res% = dll_call3("LoadGridFromFile",SG%,0,adr(f$))
'      wait 50        <<<<<<<<<<<<< klaus
      ktxt$ = string$(255," ")
      res% = DLL_call4("GetNumericGridCellText",SG%,2,NbreRows%,adr(ktxt$))
      ktxt$ = trim$(ktxt$)
      if ktxt$="" then ktxt$ = "0"
        TotalDep = val(ktxt$)
      ktxt$ = string$(255," ")
      res% = DLL_call4("GetNumericGridCellText",SG%,4,NbreRows%,adr(ktxt$))
      ktxt$ = trim$(ktxt$)
      if txt$="" then ktxt$ = "0"
        TotalRec = val(ktxt$)
      EtatLog% = 1

      ResteAV = TotalRec - TotalDep
      MajAffichResteAV()
  end_if
end_sub

Et voilà. Le tour est joué.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyJeu 2 Juin 2016 - 21:17

Merci Klaus.

J' ai pris tes modifications, je suis passé à la récup numérique sur les autres fonctions
qui le nécessitait.

Cependant, j' ai toujours un bug lorsque j' essaie d' ouvrir le fichier de sauvegarde
alors qu' un fichier est déjà ouvert.

Je pars à la chasse...
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 0:04

Je chasse aussi...
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 2:03

J' ai cherché toute la soirée sans rien trouver d' anormal,
peut-être avons nous poussé Panoramic aux limites de ce qu' il nous permet...
scratch
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 2:24

Non, je ne crois pas. Je pense que tu es tombé sur un bug dans mes fonctions StringGrid dans KGF.dll, et il faudra bien que je le trouve. J'y travaille.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 2:32

Les procedures de creation ou d' ouverture sont schematiquement celle là :

si SG% <>0
    destruction
    construction
autre
    construction

la seule chose qui diffère, c' est après la construction, le remplissage.
Selon, soit je rempli soit c' est la fonction load qui rempli.

Pour moi, il y a quelque chose qui reste après la destruction
qui crée un bug à la reconstruction car il n' y a pas de bug à la première construction.

A moins que cette destruction provoque un changement dans les edits
qui par le on_change lance une procedure sur un objet qui n' existe plus.
J' ai mis des off_change ....on_change rien de neuf
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 2:53

Citation :
qui crée un bug à la reconstruction car il n' y a pas de bug à la première construction.
C'est plus grave que ça, car le premier chargement se passe peut-être bien, mais ensuite la lecture des deux cellules de totaux débit/crédit provoque un plantage également. Pas systématiquement, mais souvent. Et sans aucune intervention.

Je cherche... J'ai déjà corrigé quelques petites imperfections, mais sans résultat probant sur l'ensemble. Mais ça viendra.
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 30 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 30 EmptyVen 3 Juin 2016 - 13:51

Je te laisse faire et je mets en stand-by en attendant.
Wink
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptySam 4 Juin 2016 - 12:12

KGF.dll V6.82 du 04/06/2016

Nouveautés:
- InitializeKGF: suppression de la simulation de HANDLE_APPLICATION, devenue inutile suite à l'apparition de la version V0.9.27i8 du 2/6/2016 de Panoramic

Modules modifiés:
KGF.dll

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

Les codes 2 et 3 de SetTaskBar sont donc opérationnels maintenant dans tous les cas, si InitializeKGF a été appelé auparavant avec HANDLE_APPLICATION comme paramètre, en exécution par l'éditeur ou par un EXE généré. Voici le programme de démo adapté:
Code:
' test_SetTaskBar.bas

label montrerbarre, autohidebarre, cachericone, flashericone
dim res%, MontreBarre%, AutoHide%, MontreBouton%, FlashBouton%

dll_on "KGF.dll"
res% = dll_call1("InitializeKGF",Handle_Application)

' état initial (à configurer selon chaque cas)

MontreBarre%  = dll_call2("SetTaskBar",0,2)  : ' barre des tâches montrée actuellement
AutoHide%      = dll_call2("SetTaskBar",1,2)  : ' barre des tâches autohide actuellement
MontreBouton%  = dll_call2("SetTaskBar",2,2)  : ' bouton de programme montré actuellement
FlashBouton%  = 0    : ' bouton de programme fixe actuellement

button 1 : top 1,10 : left 1, 10 : width 1,100 : on_click 1,montrerbarre
button 3 : top 3,10 : left 3,110 : width 3,100 : on_click 3,autohidebarre
button 5 : top 5,10 : left 5,210 : width 5,100 : on_click 5,cachericone
button 6 : top 6,10 : left 6,310 : width 6,100 : on_click 6,flashericone

  select MontreBarre%
    case 0
      caption 1,"Montrer barre"
    case 1
      caption 1,"Cacher barre"
  end_select
  select AutoHide%
    case 0
      caption 3,"AutoHide barre"
    case 1
      caption 3,"Bloquer barre"
  end_select
  select MontreBouton%
    case 0
      caption 5,"Montrer bouton"
    case 1
      caption 5,"Cacher bouton"
  end_select
  select FlashBouton%
    case 0
      caption 6,"Flasher bouton"
    case 1
      caption 6,"Fixe bouton"
  end_select

end

montrerbarre:
  MontreBarre% = 1 - MontreBarre%
  res% = dll_call2("SetTaskBar",0,MontreBarre%)
  select MontreBarre%
    case 0
      caption 1,"Montrer barre"
    case 1
      caption 1,"Cacher barre"
  end_select
  return

autohidebarre:
  AutoHide% = 1 - AutoHide%
  res% = dll_call2("SetTaskBar",1,AutoHide%)
  select AutoHide%
    case 0
      caption 3,"AutoHide barre"
    case 1
      caption 3,"Bloquer barre"
  end_select
  return

cachericone:
  MontreBouton% = 1 - MontreBouton%
  res% = dll_call2("SetTaskBar",2,MontreBouton%)
  select MontreBouton%
    case 0
      caption 5,"Montrer bouton"
    case 1
      caption 5,"Cacher bouton"
  end_select
  return

flashericone:
  FlashBouton% = 1 - FlashBouton%
  res% = dll_call2("SetTaskBar",3,FlashBouton%)
  select FlashBouton%
    case 0
      caption 6,"Fixe bouton"
    case 1
      caption 6,"Flasher bouton"
  end_select
  return
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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptySam 4 Juin 2016 - 13:14

Bonjour Klaus !

Tu avais parlé a un moment de menu contextuel (clic de droite) dans KGF.
Ou en es tu actuellement sur cette fonction ?

Il s'agit juste d'une question et non pas d'une demande.
C'est vrai que les menus contextuels sont parfois très pratiques et font plus pro !

merci d'avance pour ta réponse. 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 30 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 30 EmptySam 4 Juin 2016 - 13:44

Dans la doc, regarde le groupe de fonctions "nterception des clics sur un objet". Dans la doc de la fonction ClickSetLink, tu trouves ce que tu cherches.

Je reconnais que le mécanisme n'est pas simple à implémenter, mais cela fonctionne.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 30 sur 40Aller à la page : Précédent  1 ... 16 ... 29, 30, 31 ... 35 ... 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: