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
» Panoramic et ses curiosités
par Klaus Aujourd'hui à 2:20

» Synedit Parameters
par Klaus Aujourd'hui à 1:33

» Utilitaire de suppression de fichiers
par Yannick Hier à 23:03

» Code à vérifier SVP (Oups ! résolu)
par Jean Claude Jeu 22 Juin 2017 - 21:16

» Compilateur FBPano
par jean_debord Jeu 22 Juin 2017 - 9:56

» Bienvenue à Virtualalan !
par UltraVox Jeu 22 Juin 2017 - 9:18

» Concours de Morpions
par jjn4 Jeu 22 Juin 2017 - 0:04

» ShortName$(F) [Cloturé]
par papydall Mer 21 Juin 2017 - 16:19

» Remplacer espace par tiret dans noms des dossiers / fichiers
par papydall Mer 21 Juin 2017 - 15:27

» Menu personalisé avec icones et menu contextuel
par Laurent (Minibug) Mer 21 Juin 2017 - 12:44

» La liste des choses à faire ...
par Jack Mar 20 Juin 2017 - 22:49

» Quoi de neuf à propos de Goric 3D ? (@Jack)
par UltraVox Mar 20 Juin 2017 - 21:06

» Nom court et anti fenetre dos
par silverman Mar 20 Juin 2017 - 18:31

» Ludothèque Panoramic
par jjn4 Mar 20 Juin 2017 - 18:09

» Proposition à la communauté
par Yannick Mar 20 Juin 2017 - 15:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2017
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendrierCalendrier

Partagez | 
 

 Icônes simples

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
JL35



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

MessageSujet: Icônes simples   Ven 7 Aoû 2015 - 17:39

Rien de révolutionnaire, juste un petit gadget très simple (sub) pour insérer des icônes maison élémentaires.
J'ai fait au plus simple, c'est du noir et blanc, on pourrait évidemment mettre de la couleur... mais je n'ai pas jugé utile de compliquer davantage.
Avec un exemple d'appel:
Code:
DIM a$,w%
color 0,180,255,255

a$ = "d10,3,13,3,13,15,18,13,12,19,11,19,5,13,10,15,10,3": ' chaîne graphique
w% = 24: ' icône de 24 x 24 pixels
Icone(0,50,20,w%,w%,a$): ' graphisme

a$ = "p40,Wingdings": ' caractère 40 de la police Wingdings
w% = 48: ' icône 48 x 48
Icone(0,100,20,w%,w%,a$): ' caractère graphique
END
' ==============================================================================
SUB Icone(p%,x%,y%,w%,h%,a$)
' Création dans le parent p% d'une icône simple en x%,y% de dimensions w% x h%
' Deux possibilités:
' - a$ = descriptif graphique, de la forme dx,y,x,y,x,y... (coordonnées des points
'        à relier. Si une valeur x est précédée par 'd' c'est l'origine ou un nouveau
'        point de départ (nouvelle origine).
' - a$ = "pxx,Nom Police", xx étant le numéro du caractère de la police graphique
'        donnée.
'  a$ = "h... " chaîne en hexadécimal, en-tête 2 car. hexa= largeur et hauteur,
'        puis chaque ligne de pixels séparée par "0D0A".
'        ex. icône 32x32: p2020<#17FFFFE8<#14000028<#....(=32 lignes de description)
'
DIM_LOCAL s2d%,s2p%,np%,d%,i%,k%,c%,v%,b$
IF VARIABLE("ico%") = 0 THEN DIM ico%
s2d% = NUMBER_2D_TARGET: s2p% = NUMBER_PRINT_TARGET
np% = 850: WHILE OBJECT_EXISTS(np%)=1: np% = np%+1: END_WHILE
PICTURE np%: PARENT np%,p%: TOP np%,y%: LEFT np%,x%: WIDTH np%,w%: HEIGHT np%,h%
2D_TARGET_IS np%
IF LEFT$(a$,1) = "p"
    ' caractère d'une police graphique (Webdings, Wingdings, Wingdings 2 et 3, etc.)
    a$ = RIGHT_POS$(a$,2): k% = INSTR(a$,",")
    c% = VAL(LEFT$(a$,k%-1)): a$ = RIGHT_POS$(a$,k%+1)
    PRINT_TARGET_IS np%: FONT_NAME np%,CHR$(34)+a$+CHR$(34)
    FONT_SIZE np%,w%*.65: PRINT CHR$(c%)
ELSE
    IF LEFT$(a$,1) = "h"
        ' chaîne en hexadécimal, 1ère ligne dimensions (en hexa, puis une ligne
        ' par ligne de pixels: bit à 0 ou 1, blanc ou noir
        w% = HEX(MID$(a$,2,2)): h% = HEX(MID$(a$,4,2)): ' dimensions
        IF w% = 0 THEN w% = 256: h% = 256
        a$ = RIGHT_POS$(a$,8): ' représentation hexa de l'icône
        WIDTH np%,w%: HEIGHT np%,h%
        FOR y% = 0 TO h%-1
            b$ = LEFT$(a$,w%/4): a$ = RIGHT_POS$(a$,w%/4+3)
            FOR i% = 0 TO LEN(b$)-1
                v% = HEX(MID$(b$,i%+1,1))
                FOR k% = 0 TO 3
                    IF BIN_AND(v%,POWER(2,3-k%))>0 THEN 2D_POINT i%*4+k%,y%
                NEXT k%
            NEXT i%
        NEXT y%
    ELSE
        ' dessin de l'icône (paramètres des lignes droites successives)
        k% = INSTR(a$,",")
        WHILE k%>0
            d% = 0: IF LEFT$(a$,1)="d" THEN a$=RIGHT_POS$(a$,2): k%=INSTR(a$,","): d% = 1
            x% = VAL(LEFT$(a$,k%-1))
            a$ = RIGHT_POS$(a$,k%+1)
            k% = INSTR(a$,",")
            IF k%>0
                y% = VAL(LEFT$(a$,k%-1))
                a$ = RIGHT_POS$(a$,k%+1)
            ELSE
                y% = VAL(a$): a$ = ""
            END_IF
            IF d% = 1
                2D_LINE x%,y%,x%,y%
            ELSE
                2D_POLY_TO x%,y%
            END_IF
            IF a$ = "" THEN EXIT_WHILE
            k% = INSTR(a$,",")
        END_WHILE
    END_IF
END_IF
' 2D_LINE w%-1,0,w%-1,h%-1: 2D_POLY_TO 0,h%-1: ' ombrage droite/bas
2D_TARGET_IS s2d%: PRINT_TARGET_IS s2p%
ico% = np%
END_SUB
' ==============================================================================
Deux possibilités:
- soit une icône à dessiner soi-même, très simple, composée de lignes droites
- soit un caractère donné d'une police graphique, genre Wingdings

Le numéro d'objet de l'icône créée est renvoyé dans la variable ico%, pour le cas où on voudrait pouvoir cliquer dessus.

Exemple ci-dessus:

8/8 ajout de la possibilité de lire l'icône dans une chaîne hexadécimale (voir plus bas sub Makico)


Dernière édition par JL35 le Sam 8 Aoû 2015 - 18:07, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 18:04

lol beaucoup de chose pour si peut!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 18:14

Superbe procédure, ça permet de créer vraiment simplement ses boutons en l'appelant et du coup ça allège bien la lecture de la partie création de l'interface Wink

Bravo JL35
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 18:20

Enfin un connaisseur ! merci Jicehel ! Very Happy

blague à part, @pascal1000, pourquoi pour si peut (je suppose que tu veux dire pour si peu) ? tu trouves que ça n'a pas d'intérêt ? lol (?)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 18:33

non tkt pas ce n'est pas une critique mais je veux dire pour le nombre de ligne que tu exploite
pour afficher deux icones ! je ne ferai pas mieux mais bon
pour faire mes icônes j'utilise paint et ensuite je les affiches sur un picture

a ce propos je suis en train de faire une font avec deux dossiers un ouvert et l'autre
fermé
si ça peut intéressé quelqu'un je lui en ferai part je suis qu'au début de sa création et
c'est grace a minibug qui m'en a mis la puce a l'oreille avec GPP
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 18:57

L'interet Pascal1000, c'est entre autre pour pouvoir échanger un programme. Là, tu n'as pas de ressources externes à transmettre et tu peux tout transmettre directement sur le forum. Bien sûr pour 2 icones ça fait beaucoup de lignes, mais ça en ferait presque le même nombre pour 10 ou 30 icones. De plus le programmes résultant serait beaucoup plus léger en place puisque les icones sont générés directement. Ca doit même être un peu plus rapide car le programme n'a pas à charger toutes les icônes même si ces 2 arguments sont un peu dérisoires. Par contre somme toute ,ça commence à faire quelques raisons pour trouver ça bien pratique.
Un autre argument aussi, c'est que quand tu le maitrise bien, tu dois gagner du temps à créer l'icône en passant par la procédure plutôt que de passer par Paint. Pour une vingtaine d'icônes, tu dois pouvoir gagner pas loin d'une heure, je pense...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 19:00

A j'oubliais un autre avantage. Tu peux regénérer les icônes comme tu veux et tu peux, par exemple du coup faire très facilement des thèmes où l'utilisateur peut, par exemple choisir la couleur de fond de ses icones et la couleur de la police. C'est tout bête mais ça fait encore un avantage de plus Very Happy
En plus en entreprise, tu utilises des chartres graphiques et par conséquent, ça permet de faire des programmes qui "collent" à la charte graphique de l'entreprise et crois moi dans les grosses boites, certaines sont pointilleuses sur ce point
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 19:24

C'est bien dans cet esprit-là que je l'ai fait, avoir tout en local sans ressources externes ni d'icônes à trimballer à part.
Et je dis icônes, mais ça peut être aussi un graphique plus ou moins important à afficher dans un coin.
Et comme tu dis on peut en mettre autant qu'on veut, c'est une sub, ça ne prendra pas plus de place.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 20:04

ok c'est reçu 5 sur 5 j'ai compris ton system mais comme je n'sais pas bien déchiffrer
un programme comme vous ou alors que 40% sur tous l'emsemble de vos source. moi
personnellement je déchiffre ce que je fait et parfois même j'y perd le nord a retrouver
des parties du code
bon allez bonne soirée!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 20:29

Salut tout le monde !

Je viens de tester... effectivement, c'est pas mal comme idée !

La seconde étape serait de prévoir un générateur pour le faire a l'écran a la souris ou au clavier avec un résultat sous forme de code dans un mémo. ce qui simplifierai l'usage.

Aprés on pourrai copier la SUB et le CODE et le tour est joué !
Mais bon le principal c'est l'idée de départ. Et là bravo JL35 !cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 20:53

Comme tu dis si bien c'est une idée de départ (simple, c'était le but), après chacun peut modifier/améliorer à son goût et à sa guise !
Des logiciels pour dessiner de vraies icônes, avec couleurs et transparence etc. j'ai dû en publier un ou deux ici, mais là c'était pour du vite fait dans la simplicité.
Rien n'empêche d'avoir un fichier texte chez soi avec les icônes simples archivées sous forme d'une ligne de texte chacune (le a$ du paramètre sub), pour ne pas réinventer l'eau chaude à chaque fois, et n'embarquer que ce qui est nécessaire..
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5838
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Icônes simples   Ven 7 Aoû 2015 - 22:14

Bah, sur ce coup là JL35, tu sous exploite le futur outil de minibug. Une icone pourrait dans ce cas très bien être l'un des objets gérés. Tu le génères et il t'ajoute le code. C'est l'esprit de son outil. Tu ajoutes les objets sans te soucier du code. On se rapproche d'une interface VB en somme. Un éditeur graphique dans lequel tu gères les événements.
Le truc après ça sera de pouvoir concevoir des objets comme une grille d'icones et de pouvoir les partager entre nous pour les incorporer dans l'éditeur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Sam 8 Aoû 2015 - 18:18

Une autre petite sub, cette fois-ci pour fabriquer des icônes simples au format voulu, toujours en noir en blanc (pour afficher avec la sub ci-dessus).
On ne peut dessiner que des points ou des traits, dans une grille qui est l'image agrandie de l'icône, celle-ci se trouvant grandeur nature en haut à gauche de la fenêtre.
Le clic sur une case (= 1 pixel) inverse la couleur de la case.

Le résultat est renvoyé soit dans un fichier image BMP, soit dans un fichier texte ou dans le clipboard, sous forme d'une chaîne hexadécimale qui décrit l'icône, une ligne par ligne de pixels, avec en en-tête les dimensions de l'icône en hexa, chaque ligne étant séparée de la suivante par un retour chariot/interligne..

Code:
Makico(24,24,""): ' fabrication d'une icône 24x24, résultat dans le presse-papier
TERMINATE

' ==============================================================================
SUB Makico(w%,h%,fr$)
' Fabrication d'icônes simples (noir/blanc, points et traits) pour la sub Icone()
' Clic sur un point de la grille: bascule noir/blanc
' Touche Maj enfoncée: tracé de droites
' La sauvegarde se fait sous forme de chaîne hexadécimale dans fr$, ou dans le
' clipboard si fr$ = ""
DIM_LOCAL i%,f%,p1%,p2%,ff%,x%,y%,x1%,y1%,b1%,rg%,gg%,bg%,r%,g%,b%,c%,v%,a$
IF LABEL("Makgri")=0 THEN LABEL Makgri
IF LABEL("Makcli")=0 THEN LABEL Makcli
IF LABEL("Makcop")=0 THEN LABEL Makcop
IF LABEL("Makcls")=0 THEN LABEL Makcls
IF LABEL("Maksav")=0 THEN LABEL Maksav
IF LABEL("Makiqt")=0 THEN LABEL Makiqt
IF LABEL("Makaxe")=0 THEN LABEL Makaxe
IF LABEL("Maktai")=0 THEN LABEL Maktai
ff% = 0
c% = 10: IF w% < 32 THEN c% = 20: ' dimensions d'une case de la grille (= 1 pixel)
rg% = 128: gg% = 128: bg% = 128: ' couleur de la grille
i% = 900
f%=i%: FORM f%: BORDER_SMALL f%: WIDTH f%,w%+w%*c%+20: HEIGHT f%,h%*c%+35
    COLOR f%,180,255,255: CAPTION f%," - ICONES SIMPLES POUR LA SUB Icone() -"
    ON_CLOSE f%,Makiqt
p1%=f%+1: PICTURE p1%: PARENT p1%,f%: LEFT p1%,0: WIDTH p1%,w%: HEIGHT p1%,h%
    IF w%<64 THEN LEFT p1%,64-w%: WIDTH f%,LEFT(p1%)+w%+w%*c%+20
p2%=f%+2: PICTURE p2%: PARENT p2%,f%: LEFT p2%,LEFT(p1%)+WIDTH(p1%)+2
    WIDTH p2%,w%*c%+1: HEIGHT p2%,h%*c%+1: ON_CLICK p2%,Makcli
i%=p2%+1: BUTTON i%: PARENT i%,f%: TOP i%,h%+20: LEFT i%,0: WIDTH i%,25
    FONT_NAME i%,"Wingdings": FONT_SIZE i%,12: CAPTION i%,CHR$(236): ON_CLICK i%,Maktai
    b1% = i%
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,TOP(i%-1): LEFT i%,WIDTH(i%-1): WIDTH i%,25
    FONT_NAME i%,"Wingdings": FONT_SIZE i%,12: CAPTION i%,CHR$(237): ON_CLICK i%,Maktai
i%=i%+1: ALPHA i%: PARENT i%,f%: TOP i%,TOP(i%-1)+25: LEFT i%,1: a$=CHR$(13)+CHR$(10)
  CAPTION i%," Zoom +/-"+a$+a$+"  Droites :"+a$+"Touche 'Maj'"+a$+"  enfoncée"
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,180: WIDTH i%,66
    LEFT i%,0: CAPTION i%,"Effacer tout": ON_CLICK i%,Makcls
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,TOP(i%-1)+25: WIDTH i%,WIDTH(i%-1)
    LEFT i%,0: CAPTION i%,"Sauvegarder": ON_CLICK i%,Maksav
i%=i%+1: BUTTON i%: PARENT i%,f%: TOP i%,TOP(i%-1)+40: WIDTH i%,WIDTH(i%-1)
    LEFT i%,0: CAPTION i%,"Quitter": ON_CLICK i%,Makiqt
GOSUB Makgri: ' grille de dessin
x1% = -1: y1% = -1: SCANCODE = 0
WHILE ff% = 0: PAUSE 100: END_WHILE: DELETE f%: EXIT_SUB
' =====
Makiqt:
  ff% = 1
RETURN
' =====
Makgri:
' Grille et axes
2D_TARGET_IS p2%: CLS: 2D_PEN_COLOR rg%,gg%,bg%: ' grille de dessin
FOR i% = 0 TO WIDTH(p2%) STEP c%: 2D_LINE i%,0,i%,HEIGHT(p2%): NEXT i%
FOR i% = 0 TO HEIGHT(p2%) STEP c%: 2D_LINE 0,i%,WIDTH(p2%),i%: NEXT i%
2D_PEN_COLOR 0,0,0
GOSUB Makaxe
RETURN
' =====
Maksav:
' Si fr$ est un fichier '.BMP', la sauvegarde se fera dans ce format.
' Sinon, sauvegarde en chaînes hexadécimales -> clipboard ou fichier fr$ type texte
' Format: dimensions en hexa, puis une ligne hexa par ligne de pixels
' (1 caractère hexadécimal de 0 à F pour 4 pixels)
IF fr$<>"" AND UPPER$(FILE_EXTRACT_EXTENSION$(fr$))=".BMP"
    FILE_SAVE p1%,fr$: RETURN
END_IF
a$ = HEX$(w%)+HEX$(h%): IF w% = 256 THEN a$ = "0000"
a$ = a$+CHR$(13)+CHR$(10)
FOR y% = 0 TO h%-1
    FOR x% = 0 TO w%-1 STEP 4
        v% = 0
        FOR i% = 0 TO 3
            IF COLOR_PIXEL_RED(p1%,x%+i%,y%)=0 THEN v% = v%+POWER(2,3-i%)
        NEXT i%
        a$ = a$ + HEX$(v%)
    NEXT x%
    a$ = a$+CHR$(13)+CHR$(10)
NEXT y%
a$ = LEFT$(a$,LEN(a$)-2)
IF fr$ = ""
    CLIPBOARD_STRING_COPY a$
ELSE
    FILE_OPEN_WRITE 9,fr$: FILE_WRITELN 9,a$: FILE_CLOSE 9
END_IF
RETURN
' =====
Makcls:
  2D_TARGET_IS p1%: CLS
  GOSUB Makgri
RETURN
' =====
Makcli:
' Clic dans la zone de dessin agrandie, à droite
2D_TARGET_IS p1%
x% = INT(MOUSE_X_LEFT_DOWN(p2%)/c%): y% = INT(MOUSE_Y_LEFT_DOWN(p2%)/c%)
IF SCANCODE=160 AND x1% = -1: ' Maj gauche enfoncé
    SCANCODE = 0
    x1% = x%: y1% = y%: 2D_POINT x1%,y1%
    2D_TARGET_IS p2%: 2D_FILL_COLOR 0,0,0
    2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1: ' point de départ
ELSE
    2D_TARGET_IS p1%: 2D_PEN_COLOR 0,0,0
    IF x1% <> -1 AND SCANCODE = 160
        2D_LINE x1%,y1%,x%,y%: x1%= -1: y1%= -1: ' tracé du segment
        2D_POINT x%,y%
        GOSUB Makcop
    ELSE
        i% = COLOR_PIXEL_RED(p1%,x%,y%)
        IF i% = 0 THEN 2D_PEN_COLOR 255,255,255: ' inversion de couleur n/b
        2D_POINT x%,y%
        2D_TARGET_IS p2%: 2D_FILL_COLOR 0,0,0
        IF i% = 0 THEN 2D_FILL_COLOR 255,255,255: ' inversion de couleur n/b
        2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    END_IF
    x1% = -1: y1% = -1
END_IF
RETURN
' =====
Makcop:
' recopie de p1% sur p2%
2D_TARGET_IS p2%: GOSUB Makaxe: ' tracé des axes
2D_PEN_COLOR rg%, gg%,bg%: 2D_FILL_COLOR 0,0,0
FOR y% = 0 TO h%-1
    FOR x% = 0 TO w%-1
        r%=COLOR_PIXEL_RED(p1%,x%,y%): g%=COLOR_PIXEL_GREEN(p1%,x%,y%)
        b%=COLOR_PIXEL_BLUE(p1%,x%,y%): 2D_FILL_COLOR r%,g%,b%
        IF r%<>255 THEN 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    NEXT x%
    display
NEXT y%
RETURN
' =====
Makaxe:
' Tracé des axes repères
2D_PEN_COLOR rg%,gg%,bg%: 2D_FILL_COLOR 255,255,180
FOR y% = 0 TO h%-1
    x%=w%/4-1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    x%=w%/2-1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    x%=x%+1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    x%=3*w%/4: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
NEXT y%
FOR x% = 0 TO w%-1
    y%=h%/4-1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    y%=h%/2-1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    y%=y%+1: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
    y%=3*h%/4: 2D_RECTANGLE x%*c%,y%*c%,x%*c%+c%+1,y%*c%+c%+1
NEXT x%
RETURN
' =====
Maktai:
i% = NUMBER_CLICK
IF i% = b1%
    c% = c%+5
ELSE
    c% = c%-5: IF c%<5 THEN c% = 5
END_IF
WIDTH p2%,50: HEIGHT p2%,50: WIDTH f%,LEFT(p1%)+w%+w%*c%+20: HEIGHT f%,h%*c%+35
WIDTH p2%,w%*c%+1: HEIGHT p2%,h%*c%+1
2D_TARGET_IS p2%: CLS: 2D_PEN_COLOR rg%,gg%,bg%: ' grille de dessin
FOR i% = 0 TO WIDTH(p2%) STEP c%: 2D_LINE i%,0,i%,HEIGHT(p2%): NEXT i%
FOR i% = 0 TO HEIGHT(p2%) STEP c%: 2D_LINE 0,i%,WIDTH(p2%),i%: NEXT i%
2D_PEN_COLOR 0,0,0
GOSUB Makaxe
GOSUB Makcop
RETURN
END_SUB
' ==============================================================================
On peut évidemment imaginer plus sophistiqué, avec des couleurs (dont la transparence), d'autres figures géométriques, etc., mais là ça devient un véritable programme de dessin (déjà fait, par ailleurs Very Happy )

9/8: quelques petites améliorations, + ajout d'une fonction zoom


Dernière édition par JL35 le Dim 9 Aoû 2015 - 16:56, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Dim 9 Aoû 2015 - 16:43

Tu me fais deux petits zips comme il faut et hop, je mets sur le site... Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Dim 9 Aoû 2015 - 16:59

Attends, c'est pas fini ! pendant ce temps je peaufine, j'ajuste, je remets cent fois sur le métier...

Un seul zip pour les deux ça devrait suffire ? c'est pour le mag ? c'est pas bien long, ça vaut le coup de faire des zips ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Dim 9 Aoû 2015 - 17:07

Deux zips pour deux procédures, cela permet de ne télécharger que ce que l' on veut.
zip ou pas, zip car pour le stockage et le téléchargement c' est plus pratique et un fichier + un fichier +.... ca fait de Ko puis des Mo puis des Go et je me vois mal me mettre à faire des zips quand on sera juste en mémoire sur le serveur... Laughing
Je pense que tu vois ce que je veux dire... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Dim 9 Aoû 2015 - 17:25

Je vois très bien mon ami.
Ecoute, je n'ai mis qu'un zip pour les deux avec un petit commentaire, Icones.zip, ce n'est pas long (3k), et c'est le même sujet, tu en feras ce que bon te semblera.
C'est sans doute très améliorable, mais je pense que ça fait une base de départ pour qui voudrait aller plus loin (moi entre autres Very Happy )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Dim 9 Aoû 2015 - 22:14

Une Publication, qu' elle quelle soit, permet aux autres de voir la démarche, le cheminement pour arriver à un résultat.
Elle permet aussi de voir l' utilisation de certaines commandes.
Pour ceux qui savent cela parait évident mais rappelez vous vos débuts et vos tâtonnements...Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Lun 10 Aoû 2015 - 17:53

Une alternative intéressante aux icônes ci-dessus serait de se créer une police graphique personnalisée, affichable dans la taille voulue avec la commande Print standard.
Cette fois-ci l'utilisation serait très simple, il suffirait de définir l'emplacement et les dimensions de l'icône, et la sub d'affichage ferait simplement un print du caractère dans un picture aux dimensions données.

Le problème... c'est comment créer une police de caractères qui réagit au Print_size (TTF je crois ?), et l'intégrer aux polices Windows déjà présentes (C:\Windows\fonts).

J'ai bien trouvé un logiciel, freeware (parmi d'autres payants), qui semble permettre ça, mais ça a l'air assez compliqué à mettre en oeuvre pour un néophyte comme moi dans ce domaine... s'il y en a que ça intéresse, je donnerai le lien.

En annexe, pour voir les polices graphiques Windows déjà présentes (il y a déjà pas mal d'icônes utilisables):
Code:
' Affichage des polices de caractères graphiques Windows
LABEL Npol
DIM i%,j%,k%,fnt$,x%,y%,hc%,pp%,p%(8)

WIDTH 0,620: HEIGHT 0,785
FONT_NAME 0,"Arial": FONT_SIZE 0,10: FONT_BOLD 0: BORDER_SMALL 0
COLOR 0,128,255,255

CONTAINER_OPTION 10: TOP 10,0: LEFT 10,0: WIDTH 10,WIDTH(0)-20: HEIGHT 10,40
  CAPTION 10," POLICES GRAPHIQUES : ": COLOR 10,190,255,255
OPTION 11: PARENT 11,10: TOP 11,18: LEFT 11,20: CAPTION 11,"Webdings"
OPTION 12: PARENT 12,10: TOP 12,TOP(11): LEFT 12,LEFT(11)+100: CAPTION 12,"Wingdings"
OPTION 13: PARENT 13,10: TOP 13,TOP(11): LEFT 13,LEFT(12)+100: CAPTION 13,"Wingdings 2"
OPTION 14: PARENT 14,10: TOP 14,TOP(11): LEFT 14,LEFT(13)+100: CAPTION 14,"Wingdings 3"
MARK_ON 11: fnt$ = "Webdings"
ON_CLICK 11,Npol: ON_CLICK 12,Npol: ON_CLICK 13,Npol: ON_CLICK 14,Npol
k% = 19: x% = 2
hc% = 22: pp% = 1
FOR i% = 0 TO 255 STEP 32
    y% = HEIGHT(10): k% = k%+1
    LIST k%: TOP k%,y%: LEFT k%,x%: WIDTH k%,40: HEIGHT k%,hc%*32
    FONT_BOLD_OFF k%: FONT_SIZE k%,14: COLOR k%,255,255,190
    HEIGHT k%,32*hc%+5: ' hauteur une case
    FOR j% = 0 TO 31: ITEM_ADD k%,RIGHT$("  "+STR$(i%+j%),3): NEXT j%
    x% = x%+WIDTH(k%): k% = k%+1
    PICTURE k%: TOP k%,y%: LEFT k%,x%: WIDTH k%,35: HEIGHT k%,HEIGHT(k%-1)
    p%(pp%) = k%
    PRINT_TARGET_IS k%: FONT_NAME k%,fnt$: FONT_SIZE k%,16
    FOR j% = 0 TO 31: PRINT_LOCATE 5,j%*hc%: PRINT CHR$(i%+j%): NEXT j%
    x% = x%+WIDTH(k%): k% = k%+1: pp% = pp%+1
NEXT i%
END

Npol:
i% = NUMBER_CLICK
SELECT i%
    CASE 11: fnt$ = "Webdings"
    CASE 12: fnt$ = "Wingdings"
    CASE 13: fnt$ = "Wingdings 2"
    CASE 14: fnt$ = "Wingdings 3"
END_SELECT
FOR pp% = 1 TO 8
    i% = p%(pp%): 2D_TARGET_IS i%: CLS
    PRINT_TARGET_IS i%: FONT_NAME i%,fnt$
    FOR j% = 0 TO 31
        PRINT_LOCATE 5,j%*hc%: PRINT CHR$((pp%-1)*32+j%)
    NEXT j%
NEXT pp%
RETURN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Lun 10 Aoû 2015 - 18:17

Ce qui aurait pu être un plus mais je ne sais pas si techniquement c' est possible, est
de pouvoir choisir la police des "Sub_menu".
On aurait ainsi pu avoir une pseudo toolbar en Panoramic même si, à la réflexion, il suffit
de placer des "Button" dans un objet "Panel" ou "Container". Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Lun 10 Aoû 2015 - 18:28

J' ai oublié, je suis preneur pour l' adresse. Laughing
J' irai jeter un oeil.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Lun 10 Aoû 2015 - 18:59

Voilà, c'est là, apparemment il n'y a pas de lézard:  http://www.cr8software.net/typelight.html
Je n'ai trouvé des tutoriaux, très légers, qu'en anglais (et une vidéo en espagnol)
C'est bien type light, 1er lien, qui est le gratuit, il y en a un autre payant (Type 3.2).
En bas de page il y a les différences entre les deux versions (mais je ne comprends pas tout Very Happy ).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Lun 10 Aoû 2015 - 19:57

Merci JL35, je vais y jeter un coup d' oeil.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Laurent (Minibug)

avatar

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

MessageSujet: Re: Icônes simples   Lun 10 Aoû 2015 - 21:10

Salut a tous !

J'ai ouvert ce sujet il y a quelques semaines sur lequel Klaus a apporter plusieurs réponses.

Je vous invite a suivre le lien ci dessous :
http://panoramic.free-boards.net/t4335-gestion-et-personnalisation-d-une-police-de-caractere
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: Icônes simples   Mar 11 Aoû 2015 - 2:02

Merci Minibug, effectivement c'est beaucoup plus complet et instructif !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Icônes simples   

Revenir en haut Aller en bas
 
Icônes simples
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Remplacer la barre de navigation par des liens simples
» Dialogues simples
» Problème de rang pour mes simples membres
» PowerPoint 2007 SP2 - 2 questions qui *semblent* simples
» Cadre simple autour d'une image

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