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
» Demande urgente en maths.
par JL35 Aujourd'hui à 21:21

» Compilateur FBPano
par jean_debord Aujourd'hui à 11:24

» Problème de math
par braveen Aujourd'hui à 10:53

» A propos des attributs de fichier
par papydall Hier à 14:33

» Problème de math
par Marc37 Sam 21 Oct 2017 - 23:04

» I Love You
par papydall Sam 21 Oct 2017 - 19:22

» Un petit "coucou" à tous les Panoramiciens !
par mindstorm Sam 21 Oct 2017 - 17:06

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Tentative de surlignage

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
JL35



Nombre de messages : 5954
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Tentative de surlignage   Jeu 2 Oct 2014 - 19:08

J'ai tenté de faire une sub de surlignage dans un List, par exemple, pour mettre en évidence certains éléments trouvés par programme, mais finalement je ne suis pas trop satisfait du résultat: les éléments sont bien surlignés, mais au moindre clic le surlignage disparait: en fait l'opération se fait par superposition de pictures sur les parties concernées, mais dès qu'on fait autre chose le List est régénéré par panoramic et les pictures rajoutés passent au 2ème plan (dessous -> invisibles).

Donc ça peut être utilisé ponctuellement, mais c'est tout, à moins que quelqu'un ait une meilleure idée:
Code:
DIM f$, a$, buf$, i%

f$ = "C:\GRAPH\JPG\GOLDGATE.jpg": ' <=== un fichier quelconque
WIDTH 0,660: HEIGHT 0,900
LIST 2: TOP 2,0: WIDTH 2,640: HEIGHT 2,850
FONT_NAME 2,"Lucida Console": FONT_SIZE 2,10
MEMO 3: WIDTH 3,600: HIDE 3

Dump(f$,0,1024,16)
ITEM_ADD 3,rda$: FOR i% = 1 TO COUNT(3): ITEM_ADD 2,ITEM_READ$(3,i%): NEXT i%
CAPTION 0,f$

Surligne(2,16,50,5): ' ligne 16, caractère 50
Surligne(2,23,38,5): ' ligne 23, caractère 38
Surligne(2,29,26,5): ' ligne 29, caractère 26
Surligne(2,41,8,11): ' ligne 41, caractère 8
end
' ==============================================================================
SUB Surligne(obj%,ligne%,carac%,nbcar%)
' surligner un élément d'un Memo obj% (à police fixe)
DIM_LOCAL wc%,hc%,fm%,ps%,npt%,n2d%,el$
npt% = NUMBER_PRINT_TARGET: n2d% = NUMBER_2D_TARGET: ' sauvegarde
el$ = MID$(ITEM_READ$(obj%,ligne%),carac%,nbcar%): ' élément à surligner
fm%=2000: WHILE OBJECT_EXISTS(fm%)=1: fm%=fm%+1: END_WHILE
ps%=fm%+1: WHILE OBJECT_EXISTS(ps%)=1: ps%=ps%+1: END_WHILE
wc% = 1+TEXT_WIDTH("ABCDEFGHIJ",obj%)/10: hc% = TEXT_HEIGHT("AjBp",obj%)
FORM fm%: BORDER_HIDE fm%: TOP fm%,TOP(obj%)+(ligne%-1)*hc%+31
LEFT fm%,LEFT(obj%)+(carac%-1)*wc%+12: WIDTH fm%,wc%*nbcar%+4: HEIGHT fm%,hc%
PICTURE ps%: PARENT ps%,fm%: FULL_SPACE ps%
FONT_NAME ps%,"Lucida Console": FONT_SIZE ps%,10: ' font_color ps%,255,0,0
2d_target_is ps%: 2d_fill_color 255,255,80
PRINT_TARGET_IS ps%: PRINT_LOCATE 0,1: PRINT el$
PRINT_TARGET_IS npt%: 2D_TARGET_IS n2d%: ' restore
END_SUB
' ==============================================================================
SUB Dump(f$,posit%,n%,nol%)
' dump de n% octets de f$ à partir de posit% -> rda$, nol% octets par ligne
' à relire par exemple dans un Memo (Item_Add nmemo,rda$)
' (n% ramené si nécessaire au nombre entier inférieur de lignes)
IF VARIABLE("rda$")=0 THEN DIM rda$
DIM_LOCAL ads%, di%, dj%, dk%, ba$, ca$, cc$
IF MOD(n%,nol%)<>0 THEN n% = INT(n%/nol%): n% = n%*nol%
FILEBIN_OPEN_READ 9,f$: FILEBIN_POSITION 9,posit%: ba$ = FILEBIN_HEXA_READ$(9,n%)
FILEBIN_CLOSE 9
ads% = 0: rda$ = ""
FOR di% = 1 TO (n%-1)*2 STEP 2*nol%
    rda$ = rda$ + RIGHT$("0000"+HEX$(ads%),5) + ": ": ca$ = " "
    FOR dj% = di% TO di%+2*nol%-2 STEP 2
        cc$ = MID$(ba$, dj%, 2)
        rda$ = rda$ + cc$ + " ": dk% = HEX(cc$)
        IF dk% > 31
            ca$ = ca$ + CHR$(dk%)
        ELSE
            ca$ = ca$ + "."
        END_IF
    NEXT dj%
    ads% = ads% + nol%
    rda$ = rda$ + ca$ + " " + CHR$(13) + CHR$(10)
NEXT di%
rda$ = LEFT$(rda$, LEN(rda$)-2)
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Tentative de surlignage   Jeu 2 Oct 2014 - 20:37

J'ai pas le temps en ce moment de tester quoique ce soit, donc je ne fais pas l'essai, et je sais comment cela se passe.

Pour mon programme de conception d'un site, j'ai trouvé une solution pour montrer la ligne en cour d'un GRID. Au lieu d'utiliser un picture, utiliser un container. Ca fait la même chose, mais si il est conçu après le list, il restera au dessus, car c'est le dernier créé qui restera sur le précédent, à l'inverse d'un picture qui est recouvert.

EDIT: J'ai pas pensé qu'il y avait une tentative d'écriture, donc dans un container il faudra rajouter un picture ou un alpha. Mille excuses.
Revenir en haut Aller en bas
JL35



Nombre de messages : 5954
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Tentative de surlignage   Jeu 2 Oct 2014 - 21:02

Merci cosmos pour tes suggestions, il me semblait bien que tu avais fait quelque chose dans ce genre, autrefois.
Je vais regarder ça de plus près.

EDIT: Formidable cosmos ton idée de container, après un essai rapide le surlignage suit la fenêtre si on la déplace ou si on clique simplement dessus, il reste visible !
Je vais continuer dans cette voie, merci pour cette idée géniale !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5954
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Tentative de surlignage   Jeu 2 Oct 2014 - 23:00

Suite à l'intervention de cosmos, l'outil de surlignage devient plus intéressant, puisqu'il reste visible si on clique ou déplace la fenêtre.
Du coup j'ai ajouté une sub de recherche de séquence, un peu sommaire, mais c'est à titre expérimental: on donne une séquence à chercher, ici en hexa, et les zones trouvées sont surlignées dans le dump affiché (ici, recherche de la séquence 'FFC4' dans un fichier binaire, en l'occurence une image):
C'est très perfectible, évidemment, par exemple si la séquence est à cheval sur deux lignes, et il faudrait pouvoir se déplacer dans le fichier (faire défiler le dump), mais c'est une idée de départ.
Le principe est conçu pour une recherche dans un dump, dans un fichier texte ce serait plus facile.
Code:
DIM f$, a$, buf$, i%, j%
f$ = "C:\GRAPH\JPG\GOLDGATE.jpg": ' <=== un fichier quelconque
WIDTH 0,660: HEIGHT 0,900
LIST 2: TOP 2,0: WIDTH 2,640: HEIGHT 2,850
FONT_NAME 2,"Lucida Console": FONT_SIZE 2,10
MEMO 3: WIDTH 3,600: HIDE 3

Dump(f$,0,1024,16)
ITEM_ADD 3,rda$: FOR i% = 1 TO COUNT(3): ITEM_ADD 2,ITEM_READ$(3,i%): NEXT i%
CAPTION 0,f$
rda$ = ""
FOR i% = 1 TO COUNT(2)
    a$ = MID$(ITEM_READ$(2,i%),8,48)
    FOR j% = 1 TO LEN(a$) STEP 3: rda$=rda$+MID$(a$,j%,2): NEXT j%
NEXT i%

Recherche(rda$,"FFC4"): ' Rechercher et surligner les séquences "FFC4" dans le dump
end
' ==============================================================================
SUB Recherche(a$,seq$)
DIM_LOCAL k%,li%,ca%,nbc%
k% = INSTR(a$,seq$)
WHILE k%>0
    IF odd(k%) = 0: ' pour les recherches en hexa: k% doit être impair
        k%=k%-1
    ELSE
        li% = 1+INT(k%/32)
        ca% = k%-(li%-1)*32: ca%=ca%+INT(ca%/2)-1: ca%=ca%+8: ' (+ adresse)
        nbc% = LEN(seq$)+INT(LEN(seq$)/2)-1: ' pour tenir compte des espaces dump
        Surligne(2,li%,ca%,nbc%)
    END_IF
    k% = INSTR_POS(a$,seq$,k%+2)
END_WHILE
END_SUB
' ==============================================================================
SUB Surligne(obj%,ligne%,carac%,nbcar%)
' surligner un élément d'un Memo obj% (à police fixe)
' ligne%=ligne de l'élément, carac%=rang du caractère dans la ligne, nbcar%=nombre de caractères à surligner
DIM_LOCAL wc%,hc%,fm%,ps%,npt%,n2d%,el$
npt% = NUMBER_PRINT_TARGET: n2d% = NUMBER_2D_TARGET: ' sauvegarde
el$ = MID$(ITEM_READ$(obj%,ligne%),carac%,nbcar%): ' élément à surligner
fm%=2000: WHILE OBJECT_EXISTS(fm%)=1: fm%=fm%+1: END_WHILE
ps%=fm%+1: WHILE OBJECT_EXISTS(ps%)=1: ps%=ps%+1: END_WHILE
wc% = 1+TEXT_WIDTH("ABCDEFGHIJ",obj%)/10: hc% = TEXT_HEIGHT("AjBp",obj%)
CONTAINER fm%: TOP fm%,TOP(obj%)+(ligne%-1)*hc%
LEFT fm%,LEFT(obj%)+(carac%-1)*wc%+3: WIDTH fm%,wc%*nbcar%+4: HEIGHT fm%,hc%
PICTURE ps%: PARENT ps%,fm%: WIDTH ps%,WIDTH(fm%): HEIGHT ps%,HEIGHT(fm%)
FONT_NAME ps%,"Lucida Console": FONT_SIZE ps%,10
2D_TARGET_IS ps%: 2D_FILL_COLOR 255,255,64
PRINT_TARGET_IS ps%: PRINT_LOCATE 0,2: PRINT el$
PRINT_TARGET_IS npt%: 2D_TARGET_IS n2d%: ' restore
END_SUB
' ==============================================================================
SUB Dump(f$,posit%,n%,nol%)
' dump de n% octets de f$ à partir de posit% -> rda$, nol% octets par ligne
' à relire par exemple dans un Memo (Item_Add nmemo,rda$)
' (n% ramené si nécessaire au nombre entier inférieur de lignes)
IF VARIABLE("rda$")=0 THEN DIM rda$
DIM_LOCAL ads%, di%, dj%, dk%, ba$, ca$, cc$
IF MOD(n%,nol%)<>0 THEN n% = INT(n%/nol%): n% = n%*nol%
FILEBIN_OPEN_READ 9,f$: FILEBIN_POSITION 9,posit%: ba$ = FILEBIN_HEXA_READ$(9,n%)
FILEBIN_CLOSE 9
ads% = 0: rda$ = ""
FOR di% = 1 TO (n%-1)*2 STEP 2*nol%
    rda$ = rda$ + RIGHT$("0000"+HEX$(ads%),5) + ": ": ca$ = " "
    FOR dj% = di% TO di%+2*nol%-2 STEP 2
        cc$ = MID$(ba$, dj%, 2)
        rda$ = rda$ + cc$ + " ": dk% = HEX(cc$)
        IF dk% > 31
            ca$ = ca$ + CHR$(dk%)
        ELSE
            ca$ = ca$ + "."
        END_IF
    NEXT dj%
    ads% = ads% + nol%
    rda$ = rda$ + ca$ + " " + CHR$(13) + CHR$(10)
NEXT di%
rda$ = LEFT$(rda$, LEN(rda$)-2)
END_SUB
' ==============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Tentative de surlignage   Ven 3 Oct 2014 - 0:43

Merci pour me citer.
J'ai essayé le programme. On voit bien que le surlignage. Le problème est qu'il ne faut pas que cela scroll. Mais c'est expérimental. Le problème du décalage a toujours été problématique pour ce type de programme.
Revenir en haut Aller en bas
JL35



Nombre de messages : 5954
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: Tentative de surlignage   Ven 3 Oct 2014 - 0:49

Tu as raison, si on voulait faire quelque chose de vraiment exploitable il faudrait vraiment résoudre ce problème de scroll, ou alors (je parle dans le cas d'un dump comme ici) ne pas faire de scroll mais faire défiler les pages par programme, c'est à dire n'afficher dans le list que ce qui y tient, pas plus, en fonction de clics sur des flèches avant ou arrière, comme j'ai fait dans un programme de dump, et réafficher les surlignages en conséquence.

Mais bon, c'était une expérience, je ne crois pas que je vais aller plus loin pour le moment.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Tentative de surlignage   

Revenir en haut Aller en bas
 
Tentative de surlignage
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Cheval de troie Win32 BHO-VX
» installation Mapsource Topo USA
» tentative de poo(belle) (jeu de mot hein)
» tentative sur vray comparatif avec maxwell
» Connexion instable

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: