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 | |
|
+8JL35 Marc papydall Jicehel Yannick pascal10000 Minibug Klaus 12 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 9 Avr 2016 - 18:20 | |
| Précision : la grille restaurée vient avant que je clique sur une case 0% | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 9 Avr 2016 - 18:33 | |
| Oui, et ça, c'est voulu ainsi...
Mais le problème est corrigé. Recharge la DLL et ça devrait aller. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 10 Avr 2016 - 11:57 | |
| Pourrais tu mettre une capture, je ne vois pas de scrollbar. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 10 Avr 2016 - 12:05 | |
| Désolé, je suis confus - je me suis trompé de terme. Je ne voulais pas dire ScrollBar, mais ProgressBar ! Je changerai tout cela dans la doc. Et voici la capture: EDITLa doc est corrigée, ainsi que le post initial de la version V6.30. Désolé pour cette confusion. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 10 Avr 2016 - 12:29 | |
| Là effectivement, je vois ce que tu voulait dire et l' effet est bluffant. Manque plus que la concaténation de cellules... je plaisante, on a déjà bien des outils pour travailler. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 10 Avr 2016 - 12:32 | |
| J'ai déjà commencé à travailler sur la fusion d'un rectangle de cellules en une seule. Mais pour le moment, cela ne marche pas. Ce sont des expérimentations, à ce stade. Donc, je n'en parle pas plus que ça...
Je crois que je vais plutôt approfondir d'éventuels paramétrages pour l'aspect de la ProgressBar... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 10 Avr 2016 - 12:55 | |
| La couleur serait une bonne idée pour éviter le ton sur ton qui porterait à confusion. ( des cellules avec la même couleur de fond que celle de la progressbar ). | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 10 Avr 2016 - 19:24 | |
| KGF.dll V6.31 du 10/04/2016 StringGrid version V3 du 10/04/2016Nouveautés: - GridFunction: nouveau code 26: définir la hauteur et la couleur des ProgressBar pour un StringGridModules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Ce nouveau code permet de modifier l'apparence de la ProgressBar. Ceci doit être fait séparément pour chaque StringGrid - ce sont des paramètres propres à chaque objet, et non globales dans la DLL. Par défaut, la ProgressBar prend toute la cellule, et sa couleur RGB est est (162,189,223) en décimal, ou (A2,BD,DF) en hexa. Ceci peut être changé par le code 26. Le fond des ProgressBar est systématiquement 10 % plus foncé que le fond des cellules. Voici le programme de démo adapté pour des ProgerssBars rouges de 12 pixels de haut: - 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 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$)) res% = dll_call6("GridFunction",SG%,GF_TextAttributes,9*65536+5,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
' 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%
' 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 end_sub
Et voici le résultat: | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Avr 2016 - 14:06 | |
| bjr Klaus il y a un probleme a propros des couleurs pour les celules avec RGB(255,0,0) retour = dll_call6("GridFunction",object_internal(418),2,1,2,RGB%,FRGB%) je me retrouve avec une celule verte - Code:
-
dim echant$,font$,style$,retour dim res%,hnd%,rang%,taille% dim font_ini$,Dossier$,barrer$,souligner$ dim RGB%, FRGB%
dll_on "kgf.dll" form 400 caption 400,"UtilsFont" left 400,(screen_x-530)/2:top 400,(screen_y-500)/2 width 400,530 : height 400,500
retour = DLL_call2("FixedFormSize",object_internal(400),1) hnd%=handle(400) retour = DLL_call2("SetMinimizeMaximize",hnd%,0) command_target_is 400
edit 401 :alpha 402 : caption 402,"Police:" left 401,15 : top 401,30 :left 402,15 : top 402,10 width 401,170
list 403 left 403,15 : top 403,51 width 403,170 : height 403,150 font_names_add 403
edit 405 :alpha 406 : caption 406,"Style de police:" left 405,200 :top 405,30 :left 406,200 : top 406,10 width 405,200 list 407 left 407,200 :top 407,51 width 407,200 : height 407,150 item_add 407,"Normal" item_add 407,"Gras" item_add 407,"Oblique" item_add 407,"Oblique Gras"
edit 410 : alpha 411 : caption 411,"Tailles:" left 410,415 : top 410,30 : left 411,415 : top 411,10 width 410,80 list 412 left 412,415 : top 412,51 width 412,80 : height 412,150 item_add 412,"8":item_add 412,"9":item_add 412,"10":item_add 412,"11":item_add 412,"12":item_add 412,"13":item_add 412,"14":item_add 412,"15" item_add 412,"16":item_add 412,"18":item_add 412,"20":item_add 412,"24":item_add 412,"28":item_add 412,"30":item_add 412,"40"
container 413 : caption 413," Effet: " left 413,15 : top 413,210 width 413,170 : height 413,170
check 414 : caption 414,"Barré" parent 414,413 left 414,30 : top 414,30 check 415 : caption 415,"Souligné" parent 415,413 left 415,30 :top 415,60
' grille des couleurs grid 416 left 416,30 : top 416,90 : width 416,80 : height 416,21 parent 416,413 grid_row 416,1 : grid_column 416,1 grid_row_height 416,21 : grid_column_width 416,80 inactive 416 button 417 left 417,107 : top 417,89 : width 417,21 : height 417,21 parent 417,413
grid 418 top 418,320 : width 418,98 : left 418,45 grid_row 418,1 : grid_column 418,1 : grid_row 418,20 grid_row_height 418,15 : grid_column_width 418,75
retour = dll_call6("GridFunction",object_internal(418),8,1,0,0,0)
' changer la couleur d'une cellule, mais pas dans parties fixes
FRGB% = RGB%
RGB(0,0,0) retour = dll_call6("GridFunction",object_internal(418),2,1,1,RGB%,FRGB%) RGB(255,0,0) retour = dll_call6("GridFunction",object_internal(418),2,1,2,RGB%,FRGB%)
container 419 : caption 419," Echantillon " left 419,200 : top 419,210 width 419,297 : height 419,110
end sub RGB(R%,G%,B%) : ' produire une valeur RGB valide RGB% = (B%*256+R%)*256+G% end_sub
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 11 Avr 2016 - 14:14 | |
| regarde la sub RGB(R%,G%,B%) l'ordre dans l' opération doit être B,G,R en mettant à jour la doc, l' erreur est revenu. et tu as du faire un copier coller... - Code:
-
' 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 Edit : j' ai voulu essayer ton code et j' ai une erreur ligne 13 - Code:
-
retour = DLL_call2("FixedFormSize",object_internal(400),1) | |
| | | pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Lun 11 Avr 2016 - 14:43 | |
| merci ygeronimi bizarre ça fonctionne chez moi! c bon y a plus d'érreur | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 11 Avr 2016 - 18:19 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 11 Avr 2016 - 19:34 | |
| Allo Houston, on a un problème... - Code:
-
hide 0 variables() constantes() labels() init() gui() show 0 end
sub variables() ' variable d' incrémentation des objets panoramic dim no% end_sub
sub constantes() ' dll dim kgf$ : kgf$ = "C:\KGF\KGF.dll" ' objets panoramic ' ...form 0 dim mm% : no%=no%+1 : mm%=no% dim sm% : no%=no%+1 : sm%=no% dim SGmemo% : no%=no%+1 : SGmemo%=no% dim SGedit% : no%=no%+1 : SGedit%=no% ' ...form couleurs dim Fcolor% : no%=no%+1 : Fcolor%=no% ' objets kgf dim SG% end_sub
sub labels() label clic,change end_sub
sub init() ' chargement de la dll dll_on kgf$ end_sub
sub gui() height 0,500 width 0,800 top 0,(screen_y-height(0))/2 left 0,(screen_x-width(0))/2 caption 0,"Essais Menu couleurs" main_menu mm% sub_menu sm% : parent sm%,mm% : caption sm%,"Couleurs" : on_click sm%,clic end_sub
clic: if number_click = sm% Open_Fcolor() return end_if return
change: if object_exists(Fcolor%)=1 if number_change = SGedit% message text$(SGedit%) return end_if end_if return
sub Open_Fcolor() dim_local res% if object_exists(Fcolor%)=1 show Fcolor% else form Fcolor% height Fcolor%,350 width Fcolor%,200 border_small Fcolor% memo SGmemo% hide SGmemo% item_add SGmemo%,"Width="+str$(width(Fcolor%)-6) item_add SGmemo%,"Height="+str$(height(Fcolor%)-30) item_add SGmemo%,"Rows=350" item_add SGmemo%,"Columns=2" item_add SGmemo%,"FixedRows=1" item_add SGmemo%,"FixedColumns=0" edit SGedit% hide SGedit% on_change SGedit%,change SG% = dll_call3("CreateStringGrid",handle(Fcolor%),handle(SGmemo%),handle(SGedit%))
end_if top Fcolor%,top(0)+46 left Fcolor%,left(0) end_sub lorsque je "hide" le form Fcolor% et que je le "re-show", le stringgrid disparait. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Jeu 14 Avr 2016 - 19:26 | |
| J'étais parti à l'étranger pendant quelques jours. Je vais analyser ce problème maintenant.
EDIT
La raison de ce comportement est la suivante: lorsque tu cliques sur la croix rouge d'une form, Windows envoie un message WM_CLOSE à la form. A son tour, la form envoie un message WM_DESTROY à tous ses objets, et donc au StringGrid. Or, mon StringGrid se supprime (logiquement) lorsqu'il reçoit ce message.
Solution: déactive la croix rouge et place un bouton "Quitter" ou similaire sur cette form. Dans la routine ON_CLICK de ce bouton, tu fais HIDE de la form.
At voilà - le tour est joué. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 15 Avr 2016 - 11:12 | |
| Ok Klaus.
Ce qui est curieux, c' est que les objets Panoramic, eux, ré-apparaissent. Apparemment, ils ne subissent pas WM_DESTROY. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 12:05 | |
| Oui. Jack avait bien dit qu'il y a un bug dans le traitement de la croix rouge, dans Panoramic, ce qui conduit à ne pas supprimer les objets. Il voulait corriger cela, mais je lui ai demandé humblement de n'en rien faire - la situation telle qu'elle est, me semble parfaite: on peut réafficher la fenêtre, avec toutes ses données, par un simple SHOW, et je m'en sers partout. S'il faut recréer la fenêtre et ses objets chaque fois, alors c'est la galère pour mémoriser les données et les restituer après nouvelle création. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 12:48 | |
| KGF.dll V6.32 du 15/04/2016 StringGrid version V4 du 15/04/2016Nouveautés: - GridFunction: nouveau code 27: définir une ImageList pour un StringGrid - GridFunction: nouveau code 28: définir une région d'icônes pour un StringGridModules modifiés: KGF.dll KGF.chmLa doc et les sources sources sont à jour. Cette nouveauté permet d'afficher des icônes dans certaines cellules d'un StringGrid. Les icônes proviennent d'un objet ImageList. Cela peut être un objet ImageList créé par le programme Panoramic en utilisant les fonctions de gestion de l'objet ImageList, ou la liste des icônes internes, ou encore un fichier ILB externe. Les icônes peuvent être définies pour une ligne entière, une colonne entière ou pour une cellule spécifique. Les icônes peuvent être placées à gauche ou à droite de la cellule visés. Il faut utiliser de préférence des icônes de 16x16 pixels. Voici le programme de démo, adapté pour afficher une colonne d'icônes cadrées à gauche, et une seule icône cadrée à droite, en utilisant les icônes internes: - 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$)) res% = dll_call6("GridFunction",SG%,GF_TextAttributes,9*65536+5,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: | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 15 Avr 2016 - 13:46 | |
| Oups... ....on a un problème d' affichage avec la nouvelle version de la dll. et comme un c... j' ai pas gardé l' ancienne version... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 14:13 | |
| Recharge la DLL et essaie à nouveau... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 15:01 | |
| As-tu rechargé la dll (pas de changement de numéro de version, cependant) ? Le vois une différence au niveau des attributs graphiques (gras) et de justification (centré). Est-ce ce que tu constates, avec la version que je viens de mettre en ligne ? EDIT As-tu tenu compte des changements au niveau des attributs de texte, dans GridFunction ? Voici un extrait de la doc, pour le code 9: - Citation :
- taille de police
+256=gras +512=italique +1024=souligné +2048=barré +4096=centré +8192=cadr. à droite | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 15 Avr 2016 - 15:23 | |
| la deuxième capture est faite avec la derniere version, du moins celle que tu m' as dit de recharger. voilà le code de création du stringgrid. - Code:
-
clear SGmemo% item_add SGmemo%,"Width="+str$(width(cont_TAB%)-10) item_add SGmemo%,"Height="+str$(height(cont_TAB%)-28) item_add SGmemo%,"Rows=2" item_add SGmemo%,"Columns=9" item_add SGmemo%,"FixedRows=1" item_add SGmemo%,"FixedColumns=0"
for i%=1 to 12 Tab onglet%(i%) parent onglet%(i%),cont_TAB% caption onglet%(i%),TabName$(i%) on_show onglet%(i%),TabSelection
sepcel$ = ";" seplin$ = "|" RGB(201,231,255) RGBfondDate% = RGB% RGB(0,0,0) RGBpoliceDate% = RGB% RGB(247,224,250) RGBfondDeb% = RGB% RGB(0,0,0) RGBpoliceDeb% = RGB% RGB(215,245,179) RGBfondCred% = RGB% RGB(0,0,0) RGBpoliceCred% = RGB% RGB(255,255,255) RGBfondNorm% = RGB% RGB(0,0,0) RGBpoliceNorm% = RGB% parnul% = 0-1 pol$ = "Times"
SG%(i%) = dll_call3("CreateStringGrid",handle(onglet%(i%)),handle(SGmemo%),handle(SGedit%)) res% = dll_call2("SetGridSeparators",adr(sepcel$),adr(seplin$)) ' res% = DLL_call6("GridFunction",SG%(i%),27,3,adr(ILtoolbar$),0,0) ' ID ( align=G : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,10,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,1,parnul%,RGBfondNorm%,RGBpoliceNorm%) ' DATE ( align=centré : fond=bleu pastel : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,4106,adr(pol$),RGBpoliceDate%) res% = DLL_call6("GridFunction",SG%(i%),4,2,parnul%,RGBfondDate%,RGBpoliceDate%) ' TIERS ( align=G : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,10,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,3,parnul%,RGBfondNorm%,RGBpoliceNorm%) ' LIBELLE ( align=G : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,10,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,4,parnul%,RGBfondNorm%,RGBpoliceNorm%) ' MODE DE PAIEMENT ( align=G : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,10,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,5,parnul%,RGBfondNorm%,RGBpoliceNorm%) ' DEBITS ( align=D : fond=rouge pastel : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,8202,adr(pol$),RGBpoliceDeb%) res% = DLL_call6("GridFunction",SG%(i%),4,6,parnul%,RGBfondDeb%,RGBpoliceDeb%) ' CREDITS ( align=D : fond=vert pastel : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,8202,adr(pol$),RGBpoliceCred%) res% = DLL_call6("GridFunction",SG%(i%),4,7,parnul%,RGBfondCred%,RGBpoliceCred%) ' POINTAGE ( align=centré : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,4106,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,8,parnul%,RGBfondNorm%,RGBpoliceNorm%) ' DOC LIE ( align=centré : fond=blanc : police=times : couleur=noir ) res% = DLL_call6("GridFunction",SG%(i%),9,0,4106,adr(pol$),RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),4,9,parnul%,RGBfondNorm%,RGBpoliceNorm%) res% = DLL_call6("GridFunction",SG%(i%),18,1,100,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,2,80,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,3,100,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,4,360,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,5,40,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,6,100,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,7,100,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,8,30,0,0) res% = DLL_call6("GridFunction",SG%(i%),18,9,30,0,0)
txt$ = "Opération" res% = DLL_call4("WriteGridCell",SG%(i%),1,1,adr(txt$)) txt$ = "Date" res% = DLL_call4("WriteGridCell",SG%(i%),2,1,adr(txt$)) txt$ = "Tiers" res% = DLL_call4("WriteGridCell",SG%(i%),3,1,adr(txt$)) txt$ = "Libellé" res% = DLL_call4("WriteGridCell",SG%(i%),4,1,adr(txt$)) txt$ = "Mode" res% = DLL_call4("WriteGridCell",SG%(i%),5,1,adr(txt$)) txt$ = "Débits" res% = DLL_call4("WriteGridCell",SG%(i%),6,1,adr(txt$)) txt$ = "Crédits" res% = DLL_call4("WriteGridCell",SG%(i%),7,1,adr(txt$)) txt$ = "P" res% = DLL_call4("WriteGridCell",SG%(i%),8,1,adr(txt$)) txt$ = "Doc" res% = DLL_call4("WriteGridCell",SG%(i%),9,1,adr(txt$)) res% = dll_call6("GridFunction",SG%(i%),8,1,0,0,0) NbR%(i%)=2 next i% | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 15:26 | |
| | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 15 Avr 2016 - 15:33 | |
| J' ai mis un zip complet sur mon webdav. La version de la dll incluse : 6.31 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 15 Avr 2016 - 17:13 | |
| Je pense que le problème vient d'une mauvaise interprétation de par1% pour le code fonction 9 de GridFunction. Voici ce que dit la doc: - Citation :
- 0 = tout l'objet
ou cellule x*65536 + y
Tu passes systématiquement 0 à tous tes appels à GridFunction avec le code 9, et donc, chaque fois, l'action a lieu sur toutes les cellules du grid. Si tu veux l'appliquer sur une colonne, il faut que du fasses comme ceci: - Code:
-
' DATE ( align=centré : fond=bleu pastel : police=times : couleur=noir ) for i%=1 to ... : ' boucle sur toutes les lignes (ou i%=2 si cela ne concerne pas la ligne de titre) res% = DLL_call6("GridFunction",SG%(i%),9,2*65536+i%,4106,adr(pol$),RGBpoliceDate%) next i% res% = DLL_call6("GridFunction",SG%(i%),4,2,parnul%,RGBfondDate%,RGBpoliceDate%)
et ça devrait marcher et ce sera plus lisible. Je te conseille de faire une SUB du genre - Code:
-
SUB GridAttributs(SG%,xcol%,nlig%,pol$,couleur%,size%,bold%,italic%,underline%,strikeout%,center%,right%) dim_local lig%, attr%, res% attr% = size% if bold%<>0 then attr% = attr% + 256 if italic%<>0 then attr% = attr% + 512 if underline%<>0 then attr% = attr% + 1024 if strikeout%<>0 then attr% = attr% + 2048 if center%<>0 then attr% = attr% + 4096 if right%<>0 then attr% = attr% + 8192 for lig%=1 to nlig% res% = DLL_call6("GridFunction",SG%(i%),9,xcol%*65536+lig%,4106,adr(pol$),couleur%%) next lig% end_sub
| |
| | | 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
| |
| |
| |