FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille terrestre
Une liste avec des attributs de texte libres Emptypar jjn4 Aujourd'hui à 14:21

» item_index
Une liste avec des attributs de texte libres Emptypar leclode Aujourd'hui à 14:07

» SineCube
Une liste avec des attributs de texte libres Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Une liste avec des attributs de texte libres Emptypar Marc Hier à 12:22

» Philharmusique
Une liste avec des attributs de texte libres Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Une liste avec des attributs de texte libres Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Une liste avec des attributs de texte libres Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Une liste avec des attributs de texte libres Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Une liste avec des attributs de texte libres Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Une liste avec des attributs de texte libres Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Une liste avec des attributs de texte libres Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Une liste avec des attributs de texte libres Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Une liste avec des attributs de texte libres Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Une liste avec des attributs de texte libres Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Une liste avec des attributs de texte libres Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 Une liste avec des attributs de texte libres

Aller en bas 
4 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 18:01

Suite à une question de Nardo26 dans le sujet "Un post-it sur le bureau", j'ai trouvé une solution au problème qu'il a soulevé: on ne peut pas changer les attributs de texte dans un list, pour une ligne ou une portion de texte.

En effet, les commandes font_color, font_bold etc agissent globalement au niveau de la list et pas ponctuellement pour une commande item_add. J'ai donc choisi de simuler le fonctionnement d'un objet list avec une dlist assurant la fonctionnalité de gestion de liste, un picture pour assurer la partie affichage, et une scroll-bar pour assurer le défilement de l'affichage dans la liste.

J'ai rendu cela paramétrable en matière de taille de l'affichage de la liste et de son positionnement. Le programme montré ci-après et suffisamment commenté; il faut cependant charger la dlist selon ses besoins, en donnant également le nombre d'enregistrements de la dlist dans la variable nombre_dans_liste%. Un click dans la liste permet de récupérer le numéro de ligne, non pas relatif à l'écran, mais par rapport à la position de la ligne affichée dans la dlist, soit le numéro absolu de la ligne

J'ai aussi trouvé une solution au problème d'effacement du picture. Dans les premières versions de ce programme, je supprimais le picture pour le recréer. Très lourd, mais c'était indispensable car la commande clear ne s'applique pas à un picture. Solution trouvée: immédiatement après la création et le dimensionnement du picture, je le sauvegarde par file_save, et au moment de l'effacer, je le recharge par file_load. Effect identique à une commande clear. Ce petit fichier KGFlistattributs.bmp prend 175 ko.

Voici le source:
Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture, change_21a

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%
dim i%, s$, n%, code%, nr%, xx%, yy%
dlist 10

' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 30                        : ' le "top" de la partie affichage
left_affichage% = 90                      : ' le "left" de la partie affichage
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
nombre_dans_liste% = 20      : ' cette variable est à charger selon le contenu de la dlist
' ************** fin de la zone configurable

' ************** paramètres calculés
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,nombre_dans_liste% - lignes_affichage%+1
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    file_save 20,"kgflistattributs.bmp"
    premiere_fois% = 0
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    print
    return
   
attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
    file_load 20,"kgflistattributs.bmp"    : ' pour effacer le picture !
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        s$ = item_read$(10,nr%+i%-1)
        gosub print_line
    next i%
fin2:
    off_error_goto
    return
   
click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
   


Dernière édition par Klaus le Mer 14 Juil 2010 - 21:05, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 19:02

D'avance je m'excuse Klaus!
Dans une bande, il y a toujours un salaud. Je me proclame à l'instant et pour un temps limité: salaud du forum.
J'ai modifié légèrement ton programme pour voir la suite:
Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture, change_21a

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%
dim i%, s$, n%, code%, nr%, xx%, yy%
dim a%  , premiere_fois%
list 10: left 10,450:height 10,450:width 10,230
width 0,700
' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 30                        : ' le "top" de la partie affichage
left_affichage% = 10                      : ' le "left" de la partie affichage
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
for a%=32 to 255:item_add 10,str$(a%)+" : "+chr$(a%)+"    - "+str$(count(10)+1):next a%
nombre_dans_liste% = count(10):message "la liste est de "+str$(count(10))+" éléments"      : ' cette variable est à charger selon le contenu de la dlist
' ************** fin de la zone configurable

' ************** paramètres calculés
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,10
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    file_save 20,"kgflistattributs.bmp"
    premiere_fois% = 0
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    print
    return

attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
    if nr%>(nombre_dans_liste%-lignes_affichage%)
        position 21,nombre_dans_liste%-lignes_affichage%+1
        return
    end_if
    file_load 20,"kgflistattributs.bmp"    : ' pour effacer le picture !
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        s$ = item_read$(10,nr%+i%-1)
        gosub print_line
    next i%
fin2:
    off_error_goto
    return

click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
Je veux voir ce que j'ai rajouté, et en cliquant sur n'importe quelle ligne, le bon élément.
signature: le Salaud du forum (cette histoire me fait rire)
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 19:21

Merci pour ton test. J'ai remarqué, grâce à toi, que j'ai omis de paramétrer la commande max pour la sroll_bar. Voci, en ligne 50 de ta version (en ligne 49 de la mienne), la modification à apporter:
Code:
max 21,nombre_dans_liste% - lignes_affichage%+1
J'ai intégré cette modif dans le programme publié ci-dessus. Et ainsi, ma liste simulée ira jusqu'au bout, et le click sur n'importe quelle ligne renvoie bien le bon numéro.

Pour les autres Panoramiciens, je précise que pour "voir" la totalité de ce qui doit s'afficher dans le cadre de gauche, c'est-à-dire dans mon picture 20, Cosmos70 a transformé ma dlist 10 en list 10 (avec les commandes de dimensions et placement). C'est utile pour tester, et c'est ainsi que j'ai testé, mais pour l'utiliser en vrai, il faut bien sûr remettre la ligne 7 en dlist !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 19:34

Je viens d'apporter la correction.
Une chose ne va pas. si je clique sur la dernière ligne, j'ai bien 244 comme numéro, mais l'élément en rapport ne correspond pas à la liste.
Quel salaud je suis!
Revenir en haut Aller en bas
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 20:40

C'est un mauvais calcul du scroll_bar. Si au lieu de déplacer l'ascenseur, on clique sur les flèches de celui-ci, on descend jusqu'au 243 ème élément (sur 244)

A noter: la grande idée de ton programme est d'avoir utilisé un scroll_bar à part, alors que moi, j'augmentais la hauteur du picture pour avoir l'ascenseur.

Mais je ne pourrais pas utiliser ce système, il faut à chaque fois réécrire les lignes depuis le haut du picture, et moi avec les multiples cellules et les multiples attributs (couleur fond et lettres de chaque cellule, fonte différente,hauteur différente, gras, italique... pour chacune des cellules, le temps de calcul est trop long et pas exploitable). il faudrait descendre/monter par palier. Hors sujet ici.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 21:04

Tu as raison: les lignes 112 à 115 dans ta version (lignes 111 à 114 dans ma version) sont obsolètes et doivent être supprimées. Je l'ai fait dans ma version postée ci-dessus. Désolé pour ce résidu d'avant l'utilisation de la commande max en ligne 50 de ta version (49 de la mienne).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 21:31

Là tu as réussi, tout est correct, il n'y a plus pour un item, montrer en inverse ou autre la ligne clickée.
Bon travail. Le salaud du forum laisse sa place à qui veut la prendre.
Alors qui?.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 21:58

Qu'à cela ne tienne: voici ma version avec le marquage de la ligne sélectionnée, et la tienne par la suite:

Version de Klaus:
Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture
label change_21a, change_21b

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%, ligne_selection%
dim i%, s$, n%, code%, nr%, xx%, yy%
dim premiere_fois%
dlist 10

' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 30                        : ' le "top" de la partie affichage
left_affichage% = 90                      : ' le "left" de la partie affichage
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
nombre_dans_liste% = 20      : ' cette variable est à charger selon le contenu de la dlist
' ************** fin de la zone configurable

' ************** paramètres calculés
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,nombre_dans_liste% - lignes_affichage%+1
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    file_save 20,"kgflistattributs.bmp"
    premiere_fois% = 0
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    if ligne_selection%=1 then print "=> ";
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    print
    return
   
attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
change_21b:
    file_load 20,"kgflistattributs.bmp"        : ' pour effacer le picture
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        s$ = item_read$(10,nr%+i%-1)
        ligne_selection% = 0
        if nr%+i%-1=ligne_choisie% then ligne_selection% = 1
        gosub print_line
    next i%
fin2:
    off_error_goto
    return
   
click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
    gosub change_21b
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
   

Version de Cosmos70:
Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture
label change_21a, change_21b

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%, ligne_selection%
dim i%, s$, n%, code%, nr%, xx%, yy%
dim a%  , premiere_fois%
list 10: left 10,450:height 10,450:width 10,230
width 0,700
' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 30                        : ' le "top" de la partie affichage
left_affichage% = 10                      : ' le "left" de la partie affichage
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
for a%=32 to 255:item_add 10,str$(a%)+" : "+chr$(a%)+"    - "+str$(count(10)+1):next a%
nombre_dans_liste% = count(10):message "la liste est de "+str$(count(10))+" éléments"      : ' cette variable est à charger selon le contenu de la dlist
' ************** fin de la zone configurable

' ************** paramètres calculés
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,nombre_dans_liste% - lignes_affichage%+1
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    file_save 20,"kgflistattributs.bmp"
    premiere_fois% = 0
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    if ligne_selection%=1 then print "=> ";
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    print
    return

attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
change_21b:
    file_load 20,"kgflistattributs.bmp"    : ' pour effacer le picture !
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        ligne_selection% = 0
        if nr%+i%-1=ligne_choisie% then ligne_selection% = 1
        s$ = item_read$(10,nr%+i%-1)
        gosub print_line
    next i%
fin2:
    off_error_goto
    return

click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
    gosub change_21b
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 22:02

Très bien, mais la mienne était juste pour contrôler ton programme, et je crois que j'ai eu raison. Cette version n'a plus lieu d'être.

Je constate que tu n'as pas utilisé les attribut de couleurs. C'était le souhait de Nardo je crois. Toujours est-il que les lignes sont écritent

Une seule remarque: tu as utilisé file save et file load pour effacer le picture. Tu sais que 2d_clear fait la même chose. je rajoute parce que tu dois pas avoir l'habitude avec Panoramic de faire du 2d, qu'il y a avant 2d_target_is N, pour le cas que tu aurais eu un problème.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 22:52

Merci pour ton encouragement. Il est vrai que ta critique constructive m'a aidé à finir cette version.

Tel que c'est réalisé, je peux utiliser n'importe quel attribut pour marquer la ligne sélectionnée. Ce qui ne marche pas, c'est l'écriture sur un FOND d'une autre couleur. Dommage. J'ai réservé les attributs couleur (ou autre font_name, font_bold etc pour relever tout ou partie d'une ligne, ce qui est un exploit pour un objet de type liste.

Mais j'ai ajouté une variable mode_selection% que l'on peut positionner pour révéler la ligne sélectionnée, soit par la flèche, soit par l'écriture en gras, soit par l'écriture en souligné. On peut imaginer d'autres modes: c'est documentgé dans le source. J'ai ajouté un sélecteur de mode de révélation dans le programme de démo que voici:
Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture
label rev_0, rev_1, rev_2, rev_3
label change_21a, change_21b, select_on, select_off, choix_revelation

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%, ligne_selection%, mode_selection%
dim i%, s$, n%, code%, nr%, xx%, yy%
dim premiere_fois%
dlist 10

gosub choix_revelation

' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 120                      : ' le "top" de la partie affichage
left_affichage% = 90                      : ' le "left" de la partie affichage
' mode_selection% = 0                      : ' ligne sélectionnée n'est pas relevée
' mode_selection% = 1                      : ' ligne sélectionnée est relevée par "=> "
' mode_selection% = 2                      : ' ligne sélectionnée est relevée par font_bold
' mode_selection% = 3                      : ' ligne selectionnée est relevée par fon_underline
' **** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
' ************** fin de la zone configurable

' ************** paramètres calculés
nombre_dans_liste% = count(10)              : ' on prend le nombre de lignes dans la liste
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,nombre_dans_liste% - lignes_affichage%+1
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    file_save 20,"kgflistattributs.bmp"
    premiere_fois% = 0
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    if ligne_selection%=1 then gosub select_on
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        gosub select_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    gosub select_off
    print
    return
   
select_on:
    select mode_selection%
        case 0:                            ' rien à faire dans ce cas
        case 1: print "=> ";              : ' révéler par une flèche
        case 2: font_bold 20              : ' révéler par le gras
        case 3: font_underline 20        : ' révéler par le sousligné
' *** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
    end_select
    return
   
select_off:
    select mode_selection%
        case 0:                              ' rien à faire dans ce cas
        case 1:                              ' rien à faire dans ce cas
        case 2: font_bold_off 20          : ' enlever le gras
        case 3: font_underline_off 20      : ' enlever le sousligné
' *** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
    end_select
    return
   
attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    if (ligne_selection%=0) or (mode_selection%<>2) then font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
change_21b:
    file_load 20,"kgflistattributs.bmp"        : ' pour effacer le picture
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        s$ = item_read$(10,nr%+i%-1)
        ligne_selection% = 0
        if nr%+i%-1=ligne_choisie% then ligne_selection% = 1
        gosub print_line
    next i%
fin2:
    off_error_goto
    return
   
click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
    gosub change_21b
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
   
' choisir le mode de révélation des lignes délectionnées
choix_revelation:
    container_option 1 : top 1,10 : left 1,10 : height 1,100
    caption 1,"Révélation de ligne sélectionnée"
    option 2 : parent 2,1 : caption 2,".../..." : top 2,20 : left 2,10 : on_click 2,rev_0
    option 3 : parent 3,1 : caption 3,"par flèche =>" : top 3,40 : left 3,10 : on_click 3,rev_1
    option 4 : parent 4,1 : caption 4,"par écriture en gras" : top 4,60 : left 4,10 : on_click 4,rev_2
    option 5 : parent 5,1 : caption 5,"par écriture soulignée" : top 5,80 : left 5,10 : on_click 5,rev_3
    return
   
rev_0:
    mode_selection% = 0 : return
rev_1:
    mode_selection% = 1 : return
rev_2:
    mode_selection% = 2 : return
rev_3:
    mode_selection% = 3 : return

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 23:07

Très intéressant tout ça, à garder sous le coude.
Merci à vous deux.
Revenir en haut Aller en bas
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyMer 14 Juil 2010 - 23:35

Pourquoi tu dis que tu ne peux pas afficher sur un fond d'une autre couleur?
Que veux-tu faire?

Je viens d'essayer. Pour imprimer une ligne en fond de couleur:
2d_fill_color r,g,b
si tu connais parfaitement les coordonnées de la ligne sélectionnée:
tu rajoutes:
2d_pen_color r,g,b même valeur que 2d_fill_color
et 2d_rectangle
ensuite tu écris après avoir mis la couleur sur la fonte: font_color N,r,g,b

Autre chose: pour que ton programme soit parfait: enlève moi ce FILE_SAVE et FILE_LOAD. utilise simplement 2d_clear, ça suffit pour effacer le picture.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 0:39

Encore une fois, merci pour ta critique constructive. J'ai encore appris quelque chose. Et j'ai appliqué tes deux conseils, voici le résultat:

Ceci est la version à jour !

Code:
label attrib_on, attrib_off, print_line, change_21, fin2, click_liste, create_picture
label rev_0, rev_1, rev_2, rev_3, rev_4
label change_21a, change_21b, select_on, select_off, choix_revelation

dim nombre_dans_liste%, hauteur_affichage%, lignes_affichage%, largeur_affichage%,
dim top_affichage%, left_affichage%, ligne_choisie%, ligne_selection%, mode_selection%
dim i%, s$, n%, code%, nr%, xx%, yy%, x1%, y1%
dim premiere_fois%
dlist 10

gosub choix_revelation                    : ' pour la démo ! normalement, voir lignes 17 à 21 !

' ************** la ligne suivante est à configurer
lignes_affichage% = 8                      : ' une ligne prend 14 pixels
largeur_affichage% = 400                  : ' largeur de la partie affichage de la liste
top_affichage% = 150                      : ' le "top" de la partie affichage
left_affichage% = 90                      : ' le "left" de la partie affichage
' mode_selection% = 0                      : ' ligne sélectionnée n'est pas relevée
' mode_selection% = 1                      : ' ligne sélectionnée est relevée par "=> "
' mode_selection% = 2                      : ' ligne sélectionnée est relevée par font_bold
' mode_selection% = 3                      : ' ligne selectionnée est relevée par fon_underline
' mode_selection% = 4                      : ' ligne sélectionnée écrite en blanc sur fond bleu
' **** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
item_add 10,"aaaaaaaaaa"
item_add 10,"1|bbbbb [rouge] bbbbb"
item_add 10,"2|ccccc [bleu gras] cccc"
item_add 10,"a 1111111111"
item_add 10,"b 1111111111"
item_add 10,"c 1111111111"
item_add 10,"d 1111111111"
item_add 10,"e 1111111111"
item_add 10,"f 1111111111"
item_add 10,"g 1111111111"
item_add 10,"h 1111111111"
item_add 10,"i 1111111111"
item_add 10,"j 1111111111"
item_add 10,"k 1111111111"
item_add 10,"l 1111111111"
item_add 10,"m 1111111111"
item_add 10,"n 1111111111"
item_add 10,"o 1111111111"
item_add 10,"p 1111111111"
item_add 10,"q 1111111111"
' ************** fin de la zone configurable

' ************** paramètres calculés
nombre_dans_liste% = count(10)              : ' on prend le nombre de lignes dans la liste
hauteur_affichage% = lignes_affichage%*14  : ' hauteur de l'affichage du picture et de la scroll_bar

' ************** constructions des éléments simulant une liste
gosub create_picture
' donc, la première ligne du picture varie de la ligne 1 à la ligne lignes_affichage de la dlist
scroll_bar 21
vertical 21
left 21,left_affichage% + largeur_affichage% + 4
top 21,top_affichage%
height 21,hauteur_affichage%
min 21,1
max 21,nombre_dans_liste% - lignes_affichage%+1
on_change 21,change_21

nr% = 1 : gosub change_21a          : ' affichage initial
end

create_picture:
    picture 20
    print_target_is 20
    2d_target_is 20
    width 20,largeur_affichage%
    height 20,hauteur_affichage%
    top 20,top_affichage%
    left 20,left_affichage%
    on_click 20,click_liste
    return

print_line:
    if ligne_selection%=1 then gosub select_on
    n% = instr(s$,"|")
    code% = 0
    if n%>0 then code% = val(left$(s$,n%-1))
    s$ = right$(s$,len(s$)-n%)
    n% = instr(s$,"[")
    if n%=0
        gosub attrib_on
        print s$
        gosub attrib_off
        gosub select_off
        return
    end_if
    if n%>1
        print left$(s$,n%-1);
        s$ = right$(s$,len(s$)-n%)
        gosub attrib_on
        n% = instr(s$,"]")
        print left$(s$,n%-1);
        gosub attrib_off
        if n%<len(s$) then print right$(s$,len(s$)-n%-1);
    end_if
    gosub select_off
    print
    return
   
select_on:
    select mode_selection%
        case 0:                            ' rien à faire dans ce cas
        case 1: print "=> ";              : ' révéler par une flèche
        case 2: font_bold 20              : ' révéler par le gras
        case 3: font_underline 20        : ' révéler par le sousligné
        case 4
            x1% = 0 : y1% = (i%-1)*14
            2d_fill_color 0,0,255 : 2d_pen_color 0,0,255
            2d_rectangle x1%,y1%,x1%+largeur_affichage%,y1%+14
            font_color 20,255,255,255
' *** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
    end_select
    return
   
select_off:
    select mode_selection%
        case 0:                              ' rien à faire dans ce cas
        case 1:                              ' rien à faire dans ce cas
        case 2: font_bold_off 20          : ' enlever le gras
        case 3: font_underline_off 20      : ' enlever le sousligné
        case 4
            2d_fill_color 255,255,255 : 2d_pen_color 255,255,255 : font_color 20,0,0,0
' *** ici, d'autres modes de révélation de la ligne sélectionnée peuvent être définis
    end_select
    return
   
attrib_on:
    select code%
        case 1
            font_color 20,255,0,0
        case 2
            font_color 20,0,0,255
            font_bold 20
    end_select
    return

' annuler tous les attributs
' ************* annuler ici tous les nouveaux attributs créés
attrib_off:
    font_color 20,0,0,0
    if (ligne_selection%=0) or (mode_selection%<>2) then font_bold_off 20
    return

' gestion de la scroll_bar
change_21:
    nr% = position(21)
change_21b:
    2d_clear
change_21a:
    print_locate 0,0
    on_error_goto fin2
    for i%=1 to lignes_affichage%
        s$ = item_read$(10,nr%+i%-1)
        ligne_selection% = 0
        if nr%+i%-1=ligne_choisie% then ligne_selection% = 1
        gosub print_line
    next i%
fin2:
    off_error_goto
    return
   
click_liste:
    xx% = mouse_x_left_down(20)
    yy% = mouse_y_left_down(20)
    ligne_choisie% = nr% + int((yy%+13)/14) - 1
    gosub change_21b
' *********** ici, ajouter le traitement pour la sélection d'une ligne !
    message "ligne "+str$(ligne_choisie%)
    return
   
' choisir le mode de révélation des lignes délectionnées
choix_revelation:
    container_option 1 : top 1,10 : left 1,10 : height 1,120 : width 1,200
    caption 1,"Révélation de ligne sélectionnée"
    option 2 : parent 2,1 : caption 2,".../..." : top 2,20 : left 2,10 : on_click 2,rev_0
    option 3 : parent 3,1 : caption 3,"par flèche =>" : top 3,40 : left 3,10 : on_click 3,rev_1
    option 4 : parent 4,1 : caption 4,"par écriture en gras" : top 4,60 : left 4,10 : on_click 4,rev_2
    option 5 : parent 5,1 : caption 5,"par écriture soulignée" : top 5,80 : left 5,10 : on_click 5,rev_3
    option 6 : parent 6,1 : caption 6,"par écriture blanche sur fond bleu" : width 6,180 : top 6,100 : left 6,10 : on_click 6,rev_4
    return
   
rev_0:
    mode_selection% = 0 : return
rev_1:
    mode_selection% = 1 : return
rev_2:
    mode_selection% = 2 : return
rev_3:
    mode_selection% = 3 : return
rev_4:
    mode_selection% = 4 : return




Dernière édition par Klaus le Jeu 15 Juil 2010 - 10:31, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 3:00

Bravo! Maintenant la parole est à Nardo!
Bonne nuit!

Je viens de voir un résidu qui ne sert à rien. La variable: premiere_fois%
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 9:34

Tu as encore une fois raison - je l'enlève !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 9:35

Puisqu'on est dans le PLUS de Panoramic, je me disais qu'il serait chouette de rajouter un fond de couleur dans la liste je veux dire picture:
Une liste avec des attributs de texte libres Pourforume

9a marche (la ligne écrite en rouge), sauf que j'ai pas réussi de le faire à l'initialisation (avant 1er clic)

De toute façon c'est du superflu!

image de base pour celui qui veux s'amuser:

Une liste avec des attributs de texte libres Cranh
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 9:53

Les flammes de l'enfer...

Je dis un GRAND BRAVO à KLAUS et à COSMOS70 pour cette demonstraion que l'on pourrait appelé "Comment tansformer un PICTURE en LIST"
En regardant le sujet pas à pas, on voit la progression et cet échange montre que l'on peut coder à plusieurs par le biais du forum.
J'ai réussi, en lisant le sujet ce matin, à comprendre presque tout. (Un peu larger avant de comprendre ce qu'on entendait par révélation)

RE BRAVO, c'est du grand art.
cheers


Dernière édition par Jean Claude le Jeu 15 Juil 2010 - 13:24, édité 2 fois
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 10:52

Bravo !
Super boulot les gars!

Vraiment, c'est tip-top !

Quand je vois le travail qui a été réalisé suite à une petite remarque qui a été lancée "comme ça" dans un post, cela m'interpelle : Je pense que pour des fonctions comme celle-ci, il serait intéressant d'avoir une rubrique spéciale dans le forum (en prévision d'une éventuelle gestion de plugins...)

Cela serait vraiment dommage, pour tous, de réinventer à chaque fois la roue alors que des gens se sont déjà creuser la tête (pour être poli) pour créer une nouvelle fonctionnalité dans panoramic...

Je vais bientôt partir en vacances donc je n'aurais pas beaucoup de temps à consacrer à Panoramic, mais dès mon retour (dans une petite semaine), j'essayerai de normaliser tout ça de manière à pouvoir l'utiliser par la suite à l'aide d'include...

Mon plan serait de : (ce ne sont que des suggestions, vous me direz ce que vous en pensez)

- Avoir un appel de fonction d'ordre général: Create_GList (ou un autre nom c'est un exemple) avec une chaine de paramètre d'initialisation genre GList_init$
avec dedans: "N:n°Id|W:width%|H:height%|T:top%|L:left%|R:revelation%"

- Avoir des sous-fonctions permettant de manipuler les différents éléments:

-GList_Add :ajout d'un item[/list]
chaine de paramétrage : GList_pAdd$ contenant le texte + attribut
- GList_Sup : suppression d'un item
variable de paramétrage : GList_pSup% contenant le n° de la ligne à supprimer
- Autres.... à définir en fct des besoins.

- Une procédure de traitement GList_Traite dont le nom sera défini en dur (car appelée par ex en ligne 171) qu'on laissera le soin à l'utilisateur d'écrire...

Qu'en pensez vous ?
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 11:02

Il faudrait aussi prévoir une fonction de définition d'attribut car ceux que j'ai prévus (écrire en rouge ou en bleu gras) ne sont que des exemples)...

C'est effectivement un cas d'école pour un plug_in. Réaliser cela par un module INCLUDE avec forcément des variables pour passer les infos sera assez lourd et contraignant. J'attends impatiemment la possibilité de faire des inlcude - j'ai d'autres éléments en réserve que j'aimerais bien mettre à disposition sous cette forme. C'est un petit appel du pied à Jack...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 11:09

Je ne vais pas répondre à cela maintenant. Je ne suis pas expert, et j'ai besoin de comprendre.
Mon intervention à l'instant est une remarque sur les images précédentes. Je croyais que la chose avait été corrigée.
Si j'utilise Stretch_on pour l'image, le texte qu'on applique ensuite est "stretcher" comme l'image, et cela me parait être une erreur, même un BUG.
Si je mets une image que j'adapte au dimension du picture, c'est pour que celle-ci serve de fond. A partir de là, je conçois mal que le texte est des proportions modifiées en fonction de l'image.
Pour moi: 1er temps, je mets une image que j'adapte.
2ème temps, j'écris sur le Picture, et je veux que cela soit conforme aux paramètres du texte. ça me parait logique.

J'avais oublié de le noter tout-à l'heure.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 11:21

Pour répondre à Klaus :
Oui je suis bien d'accord avec toi, c'est un peu lourd l'utilisation de variables pour des paramètres, mais à défaut de plugins...(un autre appel du pied )
on peut toujours prévoir à l'avance, et écrire les progs dans cette optique...

Pour les attributs, je suis resté volontairement dans le vague mais bien entendu il va falloir définir une syntaxe...

Je me répète : vraiment du super boulot !
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 12:22

Je me suis dit qu'il faudrait que je fasse une mise au point, après les félicitations de plusieurs d'entre-vous.

Le programme a été fait par Klaus, et ma participation est vraiment mineur. Voir quelques erreurs n'est pas un sujet de félicitation pour moi.
Je connaissais le problème, pour avoir essayé avec mon prg sur les cellules, mais si la tache est similaire, il y a le facteur temps qui m'empêche de faire la même chose. Il y a trop de paramètres sur les attributs à chaque cellule pour que la même chose soit applicable. On ne va pas attendre 5/10 secondes ou plus pour que le texte soit réécrit à chaque descente de lignes.
Donc bravo Klaus! J'ai seulement vu que tu avais quelques lacunes avec la 2D Panoramic, car à ma connaissance, tu n'avais que très peu exploité ces fonctions.

Pour ce qui est des Plugins, je n'y connais pas grand chose. C'est vous les spécialistes.
Revenir en haut Aller en bas
Klaus

Klaus


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

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 12:32

@Cosmos70:
J'avais essayé l'histoire de l'image de fond, mais cela pose problème. Soit un l'utilise tel quel et la dimension du picture s'adapte à l'image et on perd le contrôle des lignes, soit on met stretch_on, mais cela s'applique partout, même sur le texte envoyé ultérieurement par print. Donc, aussi tentant que cela soit, j'ai renoncé pour le moment à utiliser une image de fond.

EDIT: tu as raison, je m'y connais mal el 2d, et encore moins en 3d. Mais je vais m'y mettre, c'est promis. J'ai bien compris l'intérêt !

@Nardo26:
je suis bien d'accord avec toi, et j'adapte le programme dans ce sens, progressivement. A bien y réfléchr, je pense qu'un plug-in ne conviendrait peut-être pas. Un plug-in sera certainement réalisé par un module dans un langage externe comme Delphi pour être lié à l'éditeur d'une manière à définir et pour être intégré dans le *.exe au moment de la création de l'exe.

Mais il y a un moment déjà, Jack nous avait promis une commande CALL avec des paramètres formels pour le passage de paramêtres (Tu te souviens, Jack ? Tu avais dit que cela serait possible même sans avoir un compilateur à double passe). Ce serait la solution idéale pour des modules réalisés en Panoramic.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 13:23

Citation :
Je me suis dit qu'il faudrait que je fasse une mise au point, après les félicitations de plusieurs d'entre-vous.

Le programme a été fait par Klaus, et ma participation est vraiment mineur. Voir quelques erreurs n'est pas un sujet de félicitation pour moi.

Je suis d'accord avec toi Cosmos, j'ai voulu simplement souligné que vous avez eu tous les deux un échange fructueux et que j'en ai bien profité.

@Klaus, milles excuses car j'ai ajouté un S à ton nom ( je rectifie de suite)

ET RE BRAVO
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres EmptyJeu 15 Juil 2010 - 13:37

@Jean-Claude : +1
C'est ce que j'aime bien dans les forums panoramic: l'entre-aide !
L'échange d'idées, il n'y a que ça de vrai. Cela permet de suivre le cheminement d'une réflexion, d'apprendre et d'apporter chacun sa petite pierre à l'édifice.

@Klaus:
Il est vrai que la notion de plug-in n'a pas vraiment de sens pour des routines en panoramic par contre si on pouvait faire des appels à celles-ci avec des paramètres... cela serait vraiment un plus !!!
idem pour la notion de variables locales...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





Une liste avec des attributs de texte libres Empty
MessageSujet: Re: Une liste avec des attributs de texte libres   Une liste avec des attributs de texte libres Empty

Revenir en haut Aller en bas
 
Une liste avec des attributs de texte libres
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Liste de contacts avec 2 GLIST synchronisées
» Liste des mots-clé de Panoramic avec leur classification
» Objet LIST avec attributs graphiques et éléments éditables ?
» Annoter une image avec des bulles de texte
» Album Photos avec liste 0.2

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: