FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Détection connexion internet
par JL35 Aujourd'hui à 18:39

» Le parcours du cavalier sur un échiquier 8 x 8
par pascal10000 Hier à 13:26

» Casse-tête : Echanger les positions des cavaliers
par papydall Sam 22 Juil 2017 - 19:42

» Compilateur FBPano
par jean_debord Sam 22 Juil 2017 - 10:54

» demande pour recuperer un text speciale
par pascal10000 Ven 21 Juil 2017 - 22:04

» KGF_dll - nouvelles versions
par Klaus Ven 21 Juil 2017 - 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3 ... 20 ... 40  Suivant
AuteurMessage
Klaus

avatar

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

MessageSujet: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 17:33

La fonction DesignerFunction avec le code 2 désélectionne l'objet que tu passes en paramètre, via OBJECT_INTERNAL().. Dans mon programme de démo, je le fais dans le sous-programme desel qui est activé par un clic dans la liste des objets sélectionnés (mais peu importe ce mécanisme - ce qui importe, c'est de récupérer la valeur de OBJECT_INTERNAL de l'objet que tu veux sélectionner):
Code:
desel:
  s$ = item_read$(101,item_index(101))
  n% = val(s$)
  res% = dll_call4("DesignerFunction",2,handle(parent%),n%,0)
  res% = dll_call4("DesignerFunction",3,handle(101),0,0)
  return
Tu vois qu'ici, n% est la valeur entière correspondant à la ligne dans la liste qui a été cliquée, donc bel et bien le OBJECT_INTERNAL de l'objet. Essaie dans ma démo de mukti-sélectionner plusieurs objets, puis de cliquer sur une des lignes de la liste !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 17:52

Oui c'est bien ce que je fais, mais parfois il y a un blocage.
Je ne comprends pas ! scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 18:15

Essaie comme ceci:
Code:
label click
dim res%, parent% , n% , s%
button 1 : LEFT 1,50 : TOP 1,50 : CAPTION 1,"TEST 1" : on_click 1,click
button 2 : LEFT 2,50 : TOP 2,100 : CAPTION 2,"TEST 2" : on_click 2,click
button 3 : LEFT 3,50 : TOP 3,150 : CAPTION 3,"TEST 3" : on_click 3,click

LIST 5 : LEFT 5,200 : TOP 5,50 : HEIGHT 5,200

dll_on "KGF.dll"

end

click:
  parent% = object_parent(number_click)
  IF COUNT(5)>0
    FOR n%=1 TO COUNT(5)
        IF object_internal(number_click)=VAL(ITEM_READ$(5,n%))
          res%=dll_call4("DesignerFunction",2,handle(parent%),object_internal(number_click),0)
          res%=dll_call4("DesignerFunction",3,handle(5),0,0)
          return
        END_IF
    NEXT n%
  END_IF
  res% = dll_call4("DesignerFunction",4,handle(parent%),object_internal(number_click),0)
  res%=dll_call4("DesignerFunction",3,handle(5),0,0)
return
C'est plus simple. En fait, tu mélangeais la version "mono" avec la version "multi" de la sélection.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 18:23

En reprenant ton code j'ai toujours un blocage sur certains objets.

Je clique a de nombreuses reprises sur les 3 boutons sans ordre précis
A un moment certains objets ne se désélectionnent plus !

Je dois sélectionner un objet non sélectionner pour désélectionner les autres.
C'est étrange  Exclamation  Question

As tu testé le programme ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 18:32

Oui, j'avais testé. Mais en effet, en cliquant souvent et dans n'importe quel ordre, j'arrive à reproduire le phénomène. Je corrige...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 18:50

Nouvelle version:
KGF.dll V5.44 du 22/11/2015

Nouveautés:
- module Designer: correction d'un bug dans DesigenrFunction code 2

Modules modifiés:
KGF.dll

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

Voilà - le bug sur le bloquage en suppression est résolu !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Laurent (Minibug)

avatar

Nombre de messages : 2353
Age : 50
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 19:01

OK Klaus !

Je viens de maltraiter les objets durant plusieurs minutes et tout va bien maintenant !
Merci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 19:09

@Cosmos70:
sur mon WebDav, j'ai mis une version spéciale de KGF.dll que j'ai nommée KGF_test.dll. Et j'ai adapté le programme de démo pour "piéger" l'élément perturbateur. Fais marcher cela, en utilisant le bouton "Complet", et dis-moi quel est le dernier élément affiché dans le mémo, au moment du plantage:
Code:
' test_GetPrinterInformation.bas

label test0, test1

dim res%, i%

width 0,screen_x
button 1 : caption 1,"Complet" : on_click 1,test0
button 2 : caption 2,"Réduit" : on_click 2,test1 : left 2,100
memo 3  : bar_both 3 : top 3,40 : full_space 3 : height 3,height(3)-40 : top 3,40


dll_on "KGF_test.dll"

end

test0:
  for i%=1 to 17
    res% = dll_call2("GetPrinterQueueInformation",i%,handle(3))
    display
    pause 1000
  next i%
  return

'  res% = dll_call2("GetPrinterQueueInformation",0,handle(3))
  return
test1:
  res% = dll_call2("GetPrinterQueueInformation",1,handle(3))
  return


As-tu eu l'occasion de faire cela ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 19:53

Nouvelle version:
KGF.dll V5.45 du 22/11/2015

Nouveautés:
- GetPrinterQueueInformation: gérer le cas des champs absents

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

J'ai traité correctement le cas où certains champs sont illisibles ou absents, selon les versions de Windows. Dans la ligne résultante, le champ sera toujours présent, mais avec le signe "?" comme données.

@Cosmos70:
Ne t'embête pas avec KGF_test.dll. Reprends simplement la nouvelle version de KGF.dll, et dans le programe de démo ci-après, utilise le bouton "Complet". Puis, tu défiles le résultat et tu me signales les noms pour lesquels des données sont le point d'interogation. Cela m'aidera à voir plus clair.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 22:16

Je viens de rentrer, voici le résultat.

avec GreenCloud
JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=Canon MG6400 series Printer,PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,


avec HP Deskjet 2050 series
JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=HP Deskjet 2050 J510 series (Copie 1),PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=HP Deskjet 2050 J510 series,PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,JobStatus=?Name=Canon MG6400 series Printer,PagesPrinted=0,PrintStatus=UNKNOWN,TotalPages=1,

Maintenant c'est la soupe !

Je vois que dans les deux cas GreenCloud Printer n'est pas dans la liste, alors qu'elle y est dans le sélecteur d'imprimante.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 22 Nov 2015 - 23:31

GreenCloud printer est un driver d'imprimante virtuelle. La transmission du fichier à imprimer vers GreenCloud est très rapide. Est-ce que tu vois le job d'impression dans la file d'attente de Windows, alors qu'il n'apparaît pas dans la liste proposée par la DLL ? CE que tu vois comme résultat de ma fonction, ce sont les impressions "en attente" de fin d'édition, celles déjà commencées et pas terminées ainsi que celles pas encore commencées. Mais ce qui est déjà transmis à GreenCloud, c'est déjà "terminé"pour Windows, et donc plus disponbible dans la file d'attente, et je ne peux donc pas l'afficher. Je n'ai aucun moyen de savoir ce qui se passe à l'intérieur de GreenCloud. Si, à partir de GrrenCloud, tu l'envoies sur la HP ou la Canon, alors cela apparaîtra à nouveau, jusqu'au moment de fin d'impression.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 0:20

Ce que je comprend est: que GreendCloud n'apparait. On voit le résultat de l'impression une fois que j'ai cliqué sur imprimer, dans ce drivers, alors on voit que l'impression est en cours dans HP GeskJet 2050: Voici ce que j'ai copié:
Spoiler:
 

Ce qui veut dire que les impressions vont s'accumuler sur GreenCloud jusqu'à ce que celui-ci s'ouvre, et que je clique sur imprimer. Ce qui veut dire que si je ralenti pas l'impression d'une manière ou d'une autre, il va y avoir un blocage par Greendcloud, vu la limitation des pages.
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 1:48

Je n'ai pas vraiment de solution pour ça... Dans la DLL, je ne peux pas savoir du tout ce qui se passe dans GreenCloud. Et de toutes façons, tu gère cela manuellement, dans GreenCloud.

Donc, pour moi,il n'y a qu'une solution: compter les pages dans le programme aoolication, et lorsqu'une limite raisonnable est atteinte, afficher un message avec demande de confirmation avant de continuer. Ainsi, lorsque le lot est prêt, tu peux intervenir dans GreenCloud. Et lorsque ce dernier a fini, tu valides le message dans le programme Panoramic pour cintinuer.

Désolé, mais là, on est dans un domaine qui est inaccessible à la DLL.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 2:13

Lorsque j'ai vu le résultat, c'est ce que j'ai compris. Pour tester vraiment à fond, il faudrait que j'imprime 10 pages, et j'ai presque plus d'encre avec HP Desket. Donc le résultat je le connaitrait lorsque j'aurai fini d'instaler un kit d'encre continu sur la canon.

J'ai géré comme cela pour l'instant (c'es qu'une partie du code:

Code:
impression(0) : imprimer = imprimer+1
                     if imprimer > 9
                        repeat
                           res% = dll_call2("GetPrinterQueueInformation",1,handle(8))
                           tx$ = item_read$(8,1) : pause 1000
                        until instr( tx$,"JobStatus=Impression en cours") > 0  or scancode = 27
                        if scancode = 27
                           if message_confirmation_yes_no("on annule l'impression") = 1 then sortie=1:exit_repeat
                        end_if
                        imprimer = 0
                     end_if
                     debut = bas+1
                     bas = debut + lig_maxi-1 : if bas > fin then bas = fin
                     wait 1000
                  until bas = fin
                  if sortie = 1 then exit_for

A propos, il faut que je mette 1 ou 0 dans la dll pour ce cas précis?
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 2:19

Dans les deux cas, le paramètre JobStatus est retourné. Donc, pour réduire les données et garder quelque chose de plus lisible, il suffit de passer 1 à la fonction.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pascal10000

avatar

Nombre de messages : 508
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 9:32

bjr klaus

Dans la section gridfonction peut tu donner un exemple pour utilisé
Act% /saisie directe dans le GRID/ 0|1

j'utilise cette procédure
  res% = dll_call6("GridFunction",object_internal(6),1,2-1,x%-1,RGB%,FRGB%)
qui fonctionne mais je souhaite que la case 2/1 du grid soit interdit à la saisie
merci

Ps: il faudrait que tu complète plus d'exemple dans l'aide pour les actions de gridfonction
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 12:05

Citation :
res% = dll_call6("GridFunction",object_internal(6),1,2-1,x%-1,RGB%,FRGB%)
C'est d'ailleurs équivalent à
Code:
  res% = dll_call6("GridFunction",object_internal(6),1,0,0,0,0)
car les autres paramètres sont ignorés pour le code 1.

Effectivement, cela autorise la saisie directement dans les cellules. Mais c'est une autorisation générale de saisie, quelque soit la cellule. A ce jour, il n'y a aucun mécanisme permettant d'exclure une cellule de cette autorisation. Solutioin: n'utilise pas cette possibilité, mais procède de la manière suivante:
1. définis un ON_CLICK sur le GRID
2. définis un EDIT N, invisible, avec un évènement ON_CHANGE
3. dans la routine évènement, détermine la cellule choisie
4. positionne l'EDIT N exactement par-dessus la cellule, place le contenu de la cellule dedans, rends-le visible et donne-lui le focus
5. dans la routine ON_CHANGE du EDIT N, contrôle la saisie et mets à jour la cellule du GRID

Evidemment, si dans (3), tu découvres que la cellule ne devrait pas être saisie, ne passe pas en (4)...

Citation :
il faudrait que tu complète plus d'exemple dans l'aide pour les actions de gridfonction
Pourquoi pas ? Donne-moi des idées d'exemple que tu souhaites trouver - je verrai ce que je pourrai faire. As-tu étudié le programme de démo que j'avais publié pour le GRID ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7930
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 23 Nov 2015 - 12:27

Embarassed  Je viens me mêler de la conversation pour prêcher la bonne parole du Mag.

Lorsque tu fais un tuto, exemple plus complet de la doc courte, nous avons un souci.
Celui ci se perd dans le flot des conversations et des interventions sur d' autres fonctions de la dll.

Peut être serait il plus facile à retrouver si tu en faisait un petit article pour le mag
en plaçant un lien vers son emplacement sur le forum pour ceux qui veulent bénéficier des conversations.
Tu l' avais très bien fait pour ISAM.

Un Tuto n' est pas figé, tu peux garder ton source et le mettre à jour en fonction des évolutions,
corrections de bug, etc...
Pour moi, il suffit de me le signaler quand on le place sur le webdav, en nommant tout simplement le fichier
par un préfixe "MAJ_nom_du_fichier". A ce moment là, je remplace l' ancien par le nouveau au lieu de l' ajouter.

Bon, je sors...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 12:43

@Pascal1000:
Pour ton problème de non-saisie dans certaines cellules:
Est-ce que, si je te donne le moyen d'interdire le clic dans certaines cellules, ça pourrait être une solution ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pascal10000

avatar

Nombre de messages : 508
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 14:14

bien sur klaus que ça peut me servir
j'ai tenté avec un si x%=1 then return cela
ne marche pas
même en faisant x%=1 then res% = dll_call6("GridFunction",object_internal(6),1,0,2,x%,0)
cela ne marche pas

le grid est formé comme ceci

grid 6
parent 6,2
top 6,2
width 6,178
height 6,330
grid_row 6,1 : ' enleve row fix
grid_column 6,2
grid_column_width 6,88
grid_row_height 6,21
grid_row 6,13
on_click 6,gridedit

mrc d'avance
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 15:44

Citation :
même en faisant
x%=1 then res% = dll_call6("GridFunction",object_internal(6),1,0,2,x%,0)
cela ne marche pas
Qu'est-ce que tu veux dire par cela ? De toutes façons, comme je l'ai dit dans un post précédent, la fonction GridFunction avec le code 1 ignore les autres paramètres sauf par1%. Donc, ton code set identique à
Citation :
même en faisant
x%=1 then res% = dll_call6("GridFunction",object_internal(6),1,0,0,0,0)
cela ne marche pas
Je ne vois pas ce que le x% et le 2 pourraient avoir comme influence...

Mais tel quel, celle ligne désactive la saisie dans les cellules du grid. Pour autoriser, il faut faire:
Code:
res% = dll_call6("GridFunction",object_internal(6),1,1,0,0,0)

Je crée un moyen de se positionner sur certaines cellules - ce sera bientôt dans la nouvelle version.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pascal10000

avatar

Nombre de messages : 508
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 16:59

klaus
j'ai trouvé une parade qui à l'air d'être la bonne

gridedit:
x%=grid_y_to_row(6,mouse_y_position(6))
if x%=1
res% = dll_call6("GridFunction",object_internal(6),1,0,0,0,0)
else
res% = dll_call6("GridFunction",object_internal(6),1,1,0,0,0)
end_if
return
pourquoi n'y ai-je pas pensé avant?
le 2 je l'ai pris pour paramètre 2 eme colonne c p'têt une erreur, et x% pour la rangée
puisque avec 2-1,x%-1 j'ai pris le même raisonnement de
res% = dll_call6("GridFunction",object_internal(6),1,2-1,x%-1,RGB%,FRGB%)
voilà pourquoi
ça a ptêt aucun rapport.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 17:13

C'est une bonne idée: désactiver ou réactiver l'éditeur cellulaire lors d'un clic dans une cellule. Mais il reste un problème: si tu te déplaces dans le GRID avec les flèches, tu peux tomber sur la cellule interdite en saisie. Et est-ce que ton mécanisme la protège dans ce cas ? Pas sûr !

Je suis en train de finaliser une version qui permet de définir un nombre non limité de zones rectangulaires protégées (sur lesquelles on ne pourra pas se posionner).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 17:24

Nouvelle version:
KGF.dll V5.46 du 23/11/2015

Nouveautés:
- GridFunction: ajout code opération 12

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Ce nouveau code permet de définir un rectangle de cellules"protégées". Ce sont des cellules dans lesquelles on ne peut pas positionner le curseur, ni en clioquant dessus, ni en se déplaçant par les flèches. On peut définir autant de rectangles que nécessaire. Ces rectangles peuvent se chevaucher.

Voici une démo. Pour une meilleure visibilité, les deux rectangles protégés sont colorés:
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.

dim res%, l%, c%, RGB%

width 0,680 : height 0,320
grid 1 : full_space 1 : grid_row 1,10 : grid_column 1,10
for l%=1 to 10
  for c%=1 to 10
    grid_write 1,l%,c%,str$(l%)+","+str$(c%)
  next c%
next l%

display

dll_on "KGF.dll"



' première zone interdite
res% = dll_call6("GridFunction",object_internal(1),12,3,2,5,3)
' seconde zone interdite
res% = dll_call6("GridFunction",object_internal(1),12,7,4,8,5)

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

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

RGB(200,200,255)
for l%=4 to 5
  for c%=7 to 8
    ' couleur de la première zone interdite
    res% = dll_call6("GridFunction",object_internal(1),2,c%,l%,RGB%,RGB%)
  next c%
next l%

end

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

Voici ce que ça donne à l'écran:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 23 Nov 2015 - 22:51

Nouvelle version:
KGF.dll V5.47 du 23/11/2015

Nouveautés:
- nouvelle fonction GetGridCellMap

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette fonction permet de récupérer la liste des cellules "normales" et "protégées" par Gridfunction code 12.
Cela permet de visualiser, après une série de définitions de rectangles de protection, comment est organisé le GRID. Voici le programme démo:
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.

dim res%, l%, c%, RGB%, s$

width 0,690 : height 0,310
grid 1 : width 1,660 : height 1,260
  grid_row 1,10 : grid_column 1,10
for l%=1 to 10
  for c%=1 to 10
    grid_write 1,l%,c%,str$(l%)+","+str$(c%)
  next c%
next l%

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

dll_on "KGF.dll"

' première zone interdite
res% = dll_call6("GridFunction",object_internal(1),12,3,2,5,3)
' seconde zone interdite
res% = dll_call6("GridFunction",object_internal(1),12,7,4,8,5)

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

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

RGB(200,200,255)
for l%=4 to 5
  for c%=7 to 8
    ' couleur de la première zone interdite
    res% = dll_call6("GridFunction",object_internal(1),2,c%,l%,RGB%,RGB%)
  next c%
next l%

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

end

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


Essayez de cliquer dans les zones colorées, ou cliquez à côté et essayez d'aller dans ces zones avec les flèches... ça reste parfaitement protégé ! Non parce que c'est coloré, mais parce que ces deux rectangles ont été définis comme zones protégées, ce qui se voit dans le plan latéral par les "P" (retournés par la DLL).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 40Aller à la page : 1, 2, 3 ... 20 ... 40  Suivant
 Sujets similaires
-
» Nouvelles versions éditeur et firmware FR3X
» Nouvelles versions de TC et TP
» Nouvelles versions de TypViewer 4.015 et suivantes
» Deux nouvelles versions de la Porsche 911 (type 991)
» Dacia : La Success Story Continue Avec Quatre Nouvelles Versions Et Séries Limitées

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: