Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+13The Gamer Nardo26 silverman Minibug Pedro mindstorm pascal10000 Jicehel papydall Jean Claude JL35 Yannick Klaus 17 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 18 Mar 2015 - 16:29 | |
| Si tu peux jeter un oeil sur la fonction 4 aussi... Elle ne change pas le texte de l' onglet, j' ai essayé : name$=item_read$(Dl_lang%,55) Tab_res% = dll_call6("TabObjectFunction",Tab4%,4,1,adr(name$),0,0) et je reste en français... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 18 Mar 2015 - 16:32 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 18 Mar 2015 - 19:26 | |
| Nouvelle version: KGF.dll V4.49 du 18/03/2015
Nouveautés: correction de 2 bugs dans les fonctions TabObject
Modules modifiés: KGF.dll
La doc est inchangée.
EDIT
En ce qui concerne la situation avec les nouvelles fonctions pour l'objet GRID, rien n'a changé. Ces fonctions sont susceptibles de provoquer des plantages, bien qu'elles marchent dans certains cas. Je ne les ai pas bloquées dans la DLL, mais il vaut mieux attendre. J'attends les éclaircissements de Jack sur un point technique précis. Ce que je prépare, en-dehors des fonctions déjà publiées (lecture/écriture des zones sélectionnées d'un objet GRID en une seule opération, récupération des coordonnées du rectangle de sélection), je prépare la coloration de lignes, colonnes et/ou cellules individuelles... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 18 Mar 2015 - 21:32 | |
| Le premier est bien corrigé la fonction 4 ne fonctionne toujours pas... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 18 Mar 2015 - 21:39 | |
| Et maintenant ? J'ai corrigé, je pense... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 19 Mar 2015 - 0:25 | |
| Bravo Klaus ! la fonction 4 fonctionne ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 19 Mar 2015 - 0:42 | |
| Bon, je respire...
Le diable est dans le copier/coller, quelques fois ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 19 Mar 2015 - 19:42 | |
| Nouvelle version: KGF.dll V4.50 du 19/03/2015Nouveautés: nouvelle fonction: GridFunctionModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction effectue certaines opérations sur un objet GRID. On peut passer en mode "saisie directe" dans le GRID, et on peut choisir des couleurs personnalisées pour une cellule, une ligne ou une colonne (autant de combinaisons que nécessaire). Voici le programme de démo correspondant: - Code:
-
' demo_GetSelectedGridText.bas label clic, exit, enligne, couleur dim s$, res%, x1%, y1%, x2%, y2%, x%, y%, i%, sepcel$, seplin$, RGB%
grid 1 : top 1,100 : left 1,10 grid_write 1,2,2,"aaa" grid_write 1,2,3,"bbb" grid_write 1,3,3,"ccc" ' on_click 1,clic
check 2 : top 2,10 : left 2,10 : width 2,150 : on_click 2,enligne caption 2,"GRID avec édition en ligne" button 3 : top 3,40 : left 3,10 : caption 3,"Couleurs" on_click 3,couleur
' dll_on "KGF_GRID.dll" dll_on "KGF.dll" ' on_close 0,exit end
exit: res% = dll_call1("KillProcessByHandle",handle(0)) return
clic:
' paramétrer les séparateurs (ce sont d'ailleurs les valeurs par défaut) sepcel$ = "" seplin$ = ";" : ' chr$(13)+chr$(10) res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$)) message str$(res%) return
' récupérer les coordonnées du rectangle sélectionné ' res% = DLL_call5("GetSelectedGridIndexes",object_internal(1),adr(x1%),adr(y1%),adr(x2%),adr(y2%)) message "Rectangle: ("+str$(x1%)+","+str$(y1%)+") --> ("+str$(x2%)+","+str$(y2%)+")" return
' récupérer le texte des cellules sélectionnées s$ = string$(255," ") ' res% = DLL_call2("GetSelectedGridText",object_internal(1),adr(s$)) s$ = trim$(s$) message s$ return ' remplacer le texte des cellules sélectionnées par autre chose s$ = "" for y%=y1% to y2% for x%=x1% to x2% if x%>1 then s$ = s$ + sepcel$ s$ = s$ + "L"+str$(y%) + " C"+str$(x%) next x% s$ = s$ + seplin$ next y% message "nouvelles valeurs:"+seplin$+s$ ' res% = dll_call6("WriteGridCells",object_internal(1),x1%,y1%,x2%,y2%,adr(s$)) return
enligne: i% = checked(2) : ' inverser le mode "édition" res% = dll_call5("GridFunction",object_internal(1),1,i%,0,0) return couleur: ' changer la couleur d'une colonne RGB(255,0,0) res% = dll_call5("GridFunction",object_internal(1),4,1,0,RGB%)
' changer la couleur d'une ligne RGB(0,0,255) res% = dll_call5("GridFunction",object_internal(1),3,0,2,RGB%)
' changer la couleur d'une cellule RGB(255,255,0) res% = dll_call5("GridFunction",object_internal(1),2,1,2,RGB%)
' remplacer ONDRAWCELL res% = dll_call5("GridFunction",object_internal(1),5,1,0,0) return
sub RGB(R%,G%,B%) RGB% = (B%*256+R%)*256+G% end_sub
Essayez de cocher la case à cocher et de saisir dans le GRID, puis décocher la case... Puis, cliquez sur le bouton "Couleur" - vous verrez, c'est spectaculaire. Voici ce que ça donne: [img] [/img] | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 1:49 | |
| Extension de la version, sans nouveau numéro: on peut maintenant colorer des lignes et/ou des colonnes, en incluant ou non les parties fixes. On peut également lancer la coloration en effaçant la liste des couleurs personnalisées ou en la laissant intacte. Voici le programme de démo adapté: - Code:
-
' demo_GetSelectedGridText.bas label clic, exit, enligne, couleur dim s$, res%, x1%, y1%, x2%, y2%, x%, y%, i%, sepcel$, seplin$, RGB%, d%
grid 1 : top 1,100 : left 1,10 grid_write 1,2,2,"aaa" grid_write 1,2,3,"bbb" grid_write 1,3,3,"ccc" ' on_click 1,clic
check 2 : top 2,10 : left 2,10 : width 2,150 : on_click 2,enligne caption 2,"GRID avec édition en ligne" button 3 : top 3,40 : left 3,10 : caption 3,"Couleurs" on_click 3,couleur
check 4 : top 4,40 : left 4,110 : width 4,150 : on_click 4,enligne caption 4,"sans colorer les parties fixes"
' dll_on "KGF_GRID.dll" dll_on "KGF.dll" ' on_close 0,exit end
exit: res% = dll_call1("KillProcessByHandle",handle(0)) return
clic: ' paramétrer les séparateurs (ce sont d'ailleurs les valeurs par défaut) sepcel$ = "\" seplin$ = ";" : ' chr$(13)+chr$(10) res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$)) message str$(res%) return
' récupérer les coordonnées du rectangle sélectionné ' res% = DLL_call5("GetSelectedGridIndexes",object_internal(1),adr(x1%),adr(y1%),adr(x2%),adr(y2%)) message "Rectangle: ("+str$(x1%)+","+str$(y1%)+") --> ("+str$(x2%)+","+str$(y2%)+")" return
' récupérer le texte des cellules sélectionnées s$ = string$(255," ") ' res% = DLL_call2("GetSelectedGridText",object_internal(1),adr(s$)) s$ = trim$(s$) message s$ return ' remplacer le texte des cellules sélectionnées par autre chose s$ = "" for y%=y1% to y2% for x%=x1% to x2% if x%>1 then s$ = s$ + sepcel$ s$ = s$ + "L"+str$(y%) + " C"+str$(x%) next x% s$ = s$ + seplin$ next y% message "nouvelles valeurs:"+seplin$+s$ ' res% = dll_call6("WriteGridCells",object_internal(1),x1%,y1%,x2%,y2%,adr(s$)) return
enligne: i% = checked(2) : ' inverser le mode "édition" res% = dll_call5("GridFunction",object_internal(1),1,i%,0,0) return couleur: d% = checked(4)*3
' remplacer ONDRAWCELL res% = dll_call5("GridFunction",object_internal(1),8,1,0,0)
' changer la couleur d'une colonne RGB(255,0,0) res% = dll_call5("GridFunction",object_internal(1),4+d%,2,0,RGB%)
' changer la couleur d'une ligne RGB(0,0,255) res% = dll_call5("GridFunction",object_internal(1),3+d%,0,3,RGB%)
' changer la couleur d'une cellule RGB(255,255,0) res% = dll_call5("GridFunction",object_internal(1),2,2,3,RGB%) return
sub RGB(R%,G%,B%) RGB% = (B%*256+R%)*256+G% end_sub
Voici la coloration en incluant les parties fixes (défaut): et voici la même coloration sans les parties fixes: Ca ouvre des horizons, non ? | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 7:31 | |
| Oui, çà ouvre des horizons, Je crois bien que je vais devoir repenser mon programme de compte avec KGF.dll A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 8:14 | |
| J'ai une question Klaus, maintenant que tu sais manipuler les objets PAnoramic, penses tu que l'on pourrait utiliser KGF pour pouvoir faire directement la rotation libre des sprites et les effets miroirs que tu avait fait sur les images. Question subsidiaire, avec cette méthode, ne peux tu pas simplifier ce système de rotation d'image ? (Est-il encore utile de passer par l'image interne de KGF ?) Voilà, 2 petites questions suite aux améliorations récentes ... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 8:16 | |
| Ca c'est vraiment cool ! Depuis le temps que j'y pensais... Merci Klaus. Cela va mettre de la couleur dans nos programmes et donner une nouvelle dimension a la fonction GRID. Peut être même qu'un jour Jack pourra l'implanter directement dans Panoramic... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 10:04 | |
| Depuis le temps que je dis que Jack devrait prendre un temps partiel pour avoir plus de temps pour Panoramic ... Non, sérieusement, j'espère aussi qu'il aura le temps et qu'il souhaitera inclure une partie des fonctions de KGF, en les reprenant par thèmes agrémentées avec ses propores ajouts pour offrir le package d'options complets pour chacun des objets (onglets, grilles, sprites, scene2d, ) et du système (sortie de programme, dll, utilisation des fichiers inclus dans une applications ...). C'est clair qu'il ne pourra pas tout faire d'un coup, mais le fait que Klaus partage son code et l'aide devrait lui faire gagner un peu de temps pour l'adaptation dans Panoramic. En tout cas il a de quoi s'occuper pendant son temps libre ^^ . PS: Bon courage Jack | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 10:40 | |
| @Jicehel: - Citation :
- penses tu que l'on pourrait utiliser KGF pour pouvoir faire directement la rotation libre des sprites et les effets miroirs que tu avait fait sur les images.
Malheureusement non - les SPRITE ne sont pas des objets Panoramic ni des objets Windows. Ils sont gérés totalement à part, par un système qui est propre à l'objet SCENE2D. Aucun moyen d'intervenir à ce niveau. - Citation :
- Est-il encore utile de passer par l'image interne de KGF ?
Oui. Mais as-tu vu que tu peux acvtiver le mode "immédiat" qui fait que, sans effacer l'image interne, le presse-papier contient à tout moment une copie de l'image interne ? Ce qui te permet de faire un "paste" du presse-papier, immédiatement après chaque opération. Mais tu penses peut-être que je pourrais intervenir directement sur le canvas de l'objet panoramic ? Oui, je peux, mais je perdrais probablement le lien avec ce que Panoramic croit avoir dans le Canvas. Donc, pagaille en vue... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 10:50 | |
| OK, merci pour ta réponse Klaus. C'est pour cela que je te posais la question, tu te rends mieux compte des implications que moi, mais c'est vrai qu'avec la nouvelle façon d'interagir avec les objet Panoramic, j'avais pensé que la méthode pouvait être simplifiée et peut être sécurisée puisque l'on ne passerait pas des process externes (le paste du presse papier Windows en l'occurence). Le presse papier est très bien, mais dans Windows 8, les temps de réponse peuvent être assez variable et je ne pense pas que l'on puisse récupérer d'événements disant qu'il a finit de travailler. Du coup quand on l'utilise, il faut prévoir d'assez longues pauses si l'on veut verrouiller le résultat, ce qui ne correspond pas à certains usages rapides. Ce n'est pas grave car il y a presque toujours des solutions de contournements, mais je me suis posé la question ... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 11:43 | |
| Bon, je vois ce que tu veux dire, par rapport au temps que prend une opération avec le presse-papier. Je trouverai une solution pur cela. Je pense savoir comment déterminer si l'opération est terminée, et je vais peut-être pouvoir proposer un mode "synchrone" qui fait qu'au retour de ma fonction DLL, le presse-papier est dans un état stable avec certitude.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 12:03 | |
| Nouvelle version: KGF.dll V4.51 du 20/03/2015Nouveautés: correction d'un bug dans les fonctions de gestion des GRIDModules modifiés: KGF.dll Les sources sont à jour. La doc est inchangée. Suite à l'aide précieuse de Jack, j'ai pu surmonter le blocage sur le problème qui bloquait l'utilisation de ces fonctions. Elles sont maintenant pleinement opérationnelles. Voici le dernier programme de démo qui débloque tout: - Code:
-
' demo_GetSelectedGridText.bas label clic, exit, enligne, couleur dim s$, res%, x1%, y1%, x2%, y2%, x%, y%, i%, sepcel$, seplin$, RGB%, d%
grid 1 : top 1,100 : left 1,10 grid_write 1,2,2,"aaa" grid_write 1,2,3,"bbb" grid_write 1,3,3,"ccc" on_click 1,clic
check 2 : top 2,10 : left 2,10 : width 2,150 : on_click 2,enligne caption 2,"GRID avec édition en ligne" button 3 : top 3,40 : left 3,10 : caption 3,"Couleurs" on_click 3,couleur
check 4 : top 4,40 : left 4,110 : width 4,150 : on_click 4,enligne caption 4,"sans colorer les parties fixes"
' dll_on "KGF_GRID.dll" dll_on "KGF.dll" ' on_close 0,exit end
exit: res% = dll_call1("KillProcessByHandle",handle(0)) return
clic: ' paramétrer les séparateurs (ce sont d'ailleurs les valeurs par défaut) sepcel$ = "\" seplin$ = ";" : ' chr$(13)+chr$(10) res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$))
' récupérer les coordonnées du rectangle sélectionné res% = DLL_call5("GetSelectedGridIndexes",object_internal(1),adr(x1%),adr(y1%),adr(x2%),adr(y2%)) message "Rectangle: ("+str$(x1%)+","+str$(y1%)+") --> ("+str$(x2%)+","+str$(y2%)+")"
' récupérer le texte des cellules sélectionnées s$ = string$(255," ") res% = DLL_call2("GetSelectedGridText",object_internal(1),adr(s$)) s$ = trim$(s$) message s$
' remplacer le texte des cellules sélectionnées par autre chose s$ = "" for y%=y1% to y2% for x%=x1% to x2% if x%>1 then s$ = s$ + sepcel$ s$ = s$ + "L"+str$(y%) + " C"+str$(x%) next x% s$ = s$ + seplin$ next y% res% = dll_call6("WriteGridCells",object_internal(1),x1%,y1%,x2%,y2%,adr(s$)) return
enligne: i% = checked(2) : ' inverser le mode "édition" res% = dll_call5("GridFunction",object_internal(1),1,i%,0,0) return couleur: d% = checked(4)*3
' remplacer ONDRAWCELL res% = dll_call5("GridFunction",object_internal(1),8,1,0,0)
' changer la couleur d'une colonne RGB(255,0,0) res% = dll_call5("GridFunction",object_internal(1),4+d%,2,0,RGB%)
' changer la couleur d'une ligne RGB(0,0,255) res% = dll_call5("GridFunction",object_internal(1),3+d%,0,3,RGB%)
' changer la couleur d'une cellule RGB(255,255,0) res% = dll_call5("GridFunction",object_internal(1),2,2,3,RGB%) return
sub RGB(R%,G%,B%) RGB% = (B%*256+R%)*256+G% end_sub
Essayez de sélectionner, avec la souris, un rectangle de cellules... Cochez la case "GRIG avec édition en ligne" et saisissez directement dans une cellule... Colorez lignes, colonnes et cellules avec le bouton "Couleur", avec ou sans les parties fixes... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 12:58 | |
| Malheureusement, un Access violation était au rendez-vous Puis : Exception EInvalidPointer in module KGF.dll at 00002844Puis : PANORAMIC.exe a cessé de fonctionner ... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 13:21 | |
| En faisant quoi, exactement ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 14:29 | |
| J'ai sélectionné plusieurs cellules et BING !!! l'erreur survient comme Papydall...
Pour rappel : je viens de télécharger la dernière version de KGF | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 14:43 | |
| Voici ce que ça fait chez moi: Situation initiale: " /> Sélection d'un rectangle, produisan l'affichage des coordonnées du rectangle sélectionné: " /> Ensuite, on a le texte des cellules sélectionnées: " /> Puis, le texte des cellules sélectionnées est remplacé: [img] [/img] Ca semble normal, non ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 14:45 | |
| Je viens également de tomber sur ce problème, en répétant rapidement l'opération sur plusieurs rectangles. Je vais creuser cela. EDIT: En cause: la fonction WriteGridCells. Je l'ai désactivée dans la démo, le reste fonctionne: - Code:
-
' demo_GetSelectedGridText.bas label clic, exit, enligne, couleur dim s$, res%, x1%, y1%, x2%, y2%, x%, y%, i%, sepcel$, seplin$, RGB%, d%
grid 1 : top 1,100 : left 1,10 grid_write 1,2,2,"aaa" grid_write 1,2,3,"bbb" grid_write 1,3,3,"ccc" on_click 1,clic
check 2 : top 2,10 : left 2,10 : width 2,150 : on_click 2,enligne caption 2,"GRID avec édition en ligne" button 3 : top 3,40 : left 3,10 : caption 3,"Couleurs" on_click 3,couleur
check 4 : top 4,40 : left 4,110 : width 4,150 : on_click 4,enligne caption 4,"sans colorer les parties fixes"
memo 99 : top 99,10 : left 99,360 : bar_both 99 : height 99,400
' dll_on "KGF_GRID.dll" dll_on "KGF.dll" ' on_close 0,exit end
exit: res% = dll_call1("KillProcessByHandle",handle(0)) return
clic: clear 99
' paramétrer les séparateurs (ce sont d'ailleurs les valeurs par défaut) sepcel$ = "\" seplin$ = ";" : ' chr$(13)+chr$(10) item_add 99,"SetGridSeparators en cours..." res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$)) item_add 99,"SetGridSeparators ok"
' récupérer les coordonnées du rectangle sélectionné item_add 99,"GetSelectedGridIndexes en cours..." res% = DLL_call5("GetSelectedGridIndexes",object_internal(1),adr(x1%),adr(y1%),adr(x2%),adr(y2%)) item_add 99,"GetSelectedGridIndexes ok" message "Rectangle: ("+str$(x1%)+","+str$(y1%)+") --> ("+str$(x2%)+","+str$(y2%)+")"
' récupérer le texte des cellules sélectionnées s$ = string$(255," ") item_add 99,"GetSelectedGridText en cours..." res% = DLL_call2("GetSelectedGridText",object_internal(1),adr(s$)) item_add 99,"GetSelectedGridText ok" s$ = trim$(s$) message s$ return
' remplacer le texte des cellules sélectionnées par autre chose s$ = "" for y%=y1% to y2% for x%=x1% to x2% if x%>1 then s$ = s$ + sepcel$ s$ = s$ + "L"+str$(y%) + " C"+str$(x%) next x% s$ = s$ + seplin$ next y% item_add 99,"WriteGridCells en cours..." res% = dll_call6("WriteGridCells",object_internal(1),x1%,y1%,x2%,y2%,adr(s$)) item_add 99,"WriteGridCells ok" return
enligne: i% = checked(2) : ' inverser le mode "édition" res% = dll_call5("GridFunction",object_internal(1),1,i%,0,0) return couleur: d% = checked(4)*3
' remplacer ONDRAWCELL res% = dll_call5("GridFunction",object_internal(1),8,1,0,0)
' changer la couleur d'une colonne RGB(255,0,0) res% = dll_call5("GridFunction",object_internal(1),4+d%,2,0,RGB%)
' changer la couleur d'une ligne RGB(0,0,255) res% = dll_call5("GridFunction",object_internal(1),3+d%,0,3,RGB%)
' changer la couleur d'une cellule RGB(255,255,0) res% = dll_call5("GridFunction",object_internal(1),2,2,3,RGB%) return
sub RGB(R%,G%,B%) RGB% = (B%*256+R%)*256+G% end_sub
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: KGF_dll - nouvelles versions Ven 20 Mar 2015 - 18:04 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 23 Mar 2015 - 3:01 | |
| Nouvelle version: KGF.dll V4.52 du 23/03/2015Nouveautés: code 9 pour GridFunctionModules modifiés: KGF.dllLa doc et les sources sont à jour. Cette version permet de gérer, en même temps que la couleur de fond des lignes, colonnes et/ou cellules, la taille et le nom de la police ainsi que les attributs gras, italique, souligné et barré. L'objet GRID commence à avoir de la "gueule" ! Voici le programme de démo: - Code:
-
' demo_GetSelectedGridText.bas label clic, exit, enligne, couleur dim s$, res%, x1%, y1%, x2%, y2%, x%, y%, i%, sepcel$, seplin$, RGB%, d%, att%
grid 1 : top 1,250 : left 1,10 grid_write 1,2,2,"aaa" grid_write 1,2,3,"bbb" grid_write 1,3,3,"ccc" on_click 1,clic
check 2 : top 2,10 : left 2,10 : width 2,150 : on_click 2,enligne caption 2,"GRID avec édition en ligne" button 3 : top 3,190 : left 3,60 : width 3,200 : caption 3,"Appliquer attributs" on_click 3,couleur
check 4 : top 4,40 : left 4,110 : width 4,150 : on_click 4,enligne caption 4,"sans colorer les parties fixes"
combo 5 : top 5,70 : left 5,110 : width 5,150 item_add 5,"à gauche" item_add 5,"centré" item_add 5,"à droite"
combo 6 : top 6,100 : left 6,110 : width 6,150 font_names_load 6
alpha 7 : top 7,130 : left 7,10 : caption 7,"Taille:" combo 8 : top 8,130 : left 8,110 : width 8,40 item_add 8,"8" item_add 8,"10" item_add 8,"12" item_add 8,"14" check 9 : top 9,160 : left 9, 10 : caption 9,"Gras" check 10 : top 10,160 : left 10, 90 : caption 10,"Italique" check 11 : top 11,160 : left 11,170 : caption 11,"Souligné" check 12 : top 12,160 : left 12,250 : caption 12,"Barré"
memo 99 : top 99,10 : left 99,360 : bar_both 99 : height 99,400
' dll_on "KGF_GRID.dll" dll_on "KGF.dll" ' on_close 0,exit
res% = dll_call2("SelectComboBoxItem",handle(5),1) for i%=1 to count(6) if item_read$(6,i%)="Arial" res% = dll_call2("SelectComboBoxItem",handle(6),i%) exit_for end_if next i% res% = dll_call2("SelectComboBoxItem",handle(8),2)
end
exit: res% = dll_call1("KillProcessByHandle",handle(0)) return
clic: clear 99
' paramétrer les séparateurs (ce sont d'ailleurs les valeurs par défaut) sepcel$ = "" seplin$ = chr$(13)+chr$(10) item_add 99,"SetGridSeparators en cours..." res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$)) item_add 99,"SetGridSeparators ok"
' récupérer les coordonnées du rectangle sélectionné item_add 99,"GetSelectedGridIndexes en cours..." res% = DLL_call5("GetSelectedGridIndexes",object_internal(1),adr(x1%),adr(y1%),adr(x2%),adr(y2%)) item_add 99,"GetSelectedGridIndexes ok" message "Rectangle: ("+str$(x1%)+","+str$(y1%)+") --> ("+str$(x2%)+","+str$(y2%)+")"
' récupérer le texte des cellules sélectionnées s$ = string$(255," ") item_add 99,"GetSelectedGridText en cours..." res% = DLL_call2("GetSelectedGridText",object_internal(1),adr(s$)) item_add 99,"GetSelectedGridText ok" s$ = trim$(s$) message s$ ' return
' remplacer le texte des cellules sélectionnées par autre chose s$ = "" for y%=y1% to y2% for x%=x1% to x2% if x%>x1% then s$ = s$ + sepcel$ s$ = s$ + "L"+str$(y%) + " C"+str$(x%) next x% s$ = s$ + seplin$ next y% item_add 99,"WriteGridCells en cours..." res% = dll_call6("WriteGridCells",object_internal(1),x1%,y1%,x2%,y2%,adr(s$)) item_add 99,"WriteGridCells ok" return
enligne: i% = checked(2) : ' inverser le mode "édition" res% = dll_call5("GridFunction",object_internal(1),1,i%,0,0) return couleur: d% = checked(4)*3
' forcer le centrage att% = val(item_index$(8)) if checked(9) =1 then att% = att% + 256 if checked(10)=1 then att% = att% + 512 if checked(11)=1 then att% = att% + 1024 if checked(12)=1 then att% = att% + 2048 s$ = item_index$(6) res% = dll_call5("GridFunction",object_internal(1),9,item_index(5)-1,att%,adr(s$))
' remplacer ONDRAWCELL res% = dll_call5("GridFunction",object_internal(1),8,1,0,0)
' changer la couleur d'une colonne RGB(255,0,0) res% = dll_call5("GridFunction",object_internal(1),4+d%,2,0,RGB%)
' changer la couleur d'une ligne RGB(0,0,255) res% = dll_call5("GridFunction",object_internal(1),3+d%,0,3,RGB%)
' changer la couleur d'une cellule RGB(255,255,0) res% = dll_call5("GridFunction",object_internal(1),2,2,3,RGB%) return
sub RGB(R%,G%,B%) RGB% = (B%*256+R%)*256+G% end_sub
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: KGF_dll - nouvelles versions Lun 23 Mar 2015 - 10:02 | |
| Super, on a de quoi coder un mini Excel assez facilement. Merci Klaus. Tu avais déjà fais de quoi faire les graphiques et on a de quoi travialler sur les cellules pour les fonctions dans les formules, ce n'est pas ça qui manque non plus à part peut être quelques procédures à coder pour des applications spécifiques. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |