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
» Gestion d'un système client-serveur.
Afficher des icônes et des boutons personnalisés Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Afficher des icônes et des boutons personnalisés Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Afficher des icônes et des boutons personnalisés Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Afficher des icônes et des boutons personnalisés Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Afficher des icônes et des boutons personnalisés Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Afficher des icônes et des boutons personnalisés Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Afficher des icônes et des boutons personnalisés Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Afficher des icônes et des boutons personnalisés Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Afficher des icônes et des boutons personnalisés Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Afficher des icônes et des boutons personnalisés 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 :
Cartes Pokémon : la prochaine extension ...
Voir le deal

 

 Afficher des icônes et des boutons personnalisés

Aller en bas 
AuteurMessage
JL35




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

Afficher des icônes et des boutons personnalisés Empty
MessageSujet: Afficher des icônes et des boutons personnalisés   Afficher des icônes et des boutons personnalisés EmptyJeu 22 Nov 2012 - 17:55

ICÔNES CLIQUABLES
Une petite SUB sans prétention pour afficher des icônes, éventuellement cliquables, pour agrémenter l'interface des programmes. Ces icônes peuvent être des images de n'importe quel format et dimensions.
Code:
SUB Affico(f$,obj%,x%,y%)
' Affichage de l'icône f$ en x%,y% de l'objet parent obj%
DIM_LOCAL ic_ifv$, ic_suf$, ic_tmp$, ic_ftm$, ic_dat$, ic_w%, ic_h%, ic_ob%
ic_ifv$ = "C:\Progra~2\IrfanView\i_view32.exe ": ' ******* chemin d'IrfanView, à ajuster *******
ic_tmp$ = "C:\TEMP\ic_infos.txt"
ic_ftm$ = "C:\TEMP\Ictmp.bmp"
ic_suf$ = UPPER$(RIGHT$(f$,4))
ic_dat$ = ic_ifv$ + f$ + " /info=" + ic_tmp$
IF ic_suf$ = ".BMP" OR ic_suf$ = ".JPG"
    EXECUTE_WAIT ic_dat$
ELSE
    EXECUTE_WAIT ic_dat$ + " /convert=" + ic_ftm$
    f$ = ic_ftm$
END_IF
FILE_OPEN_READ 9, ic_tmp$
WHILE FILE_EOF(9) = 0
    FILE_READLN 9, ic_dat$
    IF LEFT$(ic_dat$,16) = "Image dimensions"
        ic_dat$ = MID$(ic_dat$, 20,20)
        ic_w% = VAL(LEFT$(ic_dat$,INSTR(ic_dat$," ")-1))
        ic_dat$= MID$(ic_dat$,INSTR(ic_dat$,"x ")+2,20)
        ic_h% = VAL(LEFT$(ic_dat$,INSTR(ic_dat$," ")-1))
        EXIT_WHILE
    END_IF
END_WHILE
FILE_CLOSE 9: FILE_DELETE ic_tmp$
ic_ob% = 1000
WHILE OBJECT_EXISTS(ic_ob%) = 1: ic_ob% = ic_ob%+1: END_WHILE
PICTURE ic_ob%: IF obj% > 0 THEN PARENT ic_ob%,obj%
TOP ic_ob%,y%: LEFT ic_ob%,x%: WIDTH ic_ob%,ic_w%: HEIGHT ic_ob%,ic_h%
FILE_LOAD ic_ob%, f$: IF f$ = ic_ftm$ THEN FILE_DELETE ic_ftm$
i = ic_ob%: ' n° d'objet attribué
END_SUB
La routine utilise IrfanView pour le traitement de l'image (conversion éventuelle).
L'appel comporte le chemin de l'image, le numéro de l'objet parent (si différent de 0) et les coordonnées haut à gauche du point d'insertion.
On récupère à la sortie le numéro de l'objet icône créé, pour pouvoir le cliquer, éventuellement (la variable i doit être déclarée dans le programme principal).

PS pour ce qui est d'images trop grandes que l'on voudrait "icôniser", il est très facile de les redimensionner avec IrfanView, on pourrait même intégrer ça facilement dans la Sub, mais ça fait des paramètres (les dimensions finales) supplémentaires à passer, peut-être sans grande nécessité ?

BOUTONS SUR MESURE
Boutons évidemment cliquables, dont le Caption peut comporter plusieurs lignes qui seront centrées dans le bouton:
Code:
SUB Affbut(obj%,x%,y%,w%,h%,tx$)
' Affichage du bouton de dimensions w%,h% en x%,y% de l'objet obj%, caption tx$
' (plusieurs lignes éventuelles centrées, séparées par le caractère '<')
' Numéro de l'objet bouton rendu dans i
DIM_LOCAL bt_ob%,bt_wtx%, bt_htx%, bt_k%, bt_tx$(10), bt_nt%, bt_y%,bt_i%
bt_ob%=1000: WHILE OBJECT_EXISTS(bt_ob%) = 1: bt_ob% = bt_ob%+1: END_WHILE
PICTURE bt_ob%: IF obj% > 0 THEN PARENT bt_ob%,obj%
TOP bt_ob%,y%: LEFT bt_ob%,x%: WIDTH bt_ob%,w%: HEIGHT bt_ob%,h%
2D_TARGET_IS bt_ob%: 2D_PEN_COLOR 100,100,100: 2D_FILL_COLOR 255,255,255
2D_RECTANGLE 0,0,w%,h%
2D_LINE 0,h%-2,w%-2,h%-2: 2D_POLY_TO w%-2,0
2D_PEN_COLOR 160,160,160: 2D_LINE 2,h%-3,w%-3,h%-3: 2D_POLY_TO w%-3,2
PRINT_TARGET_IS bt_ob%
bt_k% = INSTR(tx$,"<"): bt_nt% = 1: bt_tx$(bt_nt%) = tx$
WHILE bt_k% > 0
    bt_tx$(bt_nt%) = LEFT$(tx$,bt_k%-1): tx$ = MID$(tx$,bt_k%+1,100)
    bt_nt%=bt_nt%+1: bt_tx$(bt_nt%) = tx$: bt_k% = INSTR(tx$,"<")
END_WHILE
bt_htx% = TEXT_HEIGHT(bt_tx$(1),bt_ob%)
bt_y% = (h%-bt_nt%*bt_htx%)/2
FOR bt_i% = 1 TO bt_nt%
    bt_wtx% = TEXT_WIDTH(bt_tx$(bt_i%),bt_ob%)
    PRINT_LOCATE (w%-bt_wtx%)/2, bt_y%: PRINT bt_tx$(bt_i%)
    bt_y% = bt_y%+bt_htx%
NEXT bt_i%
i = bt_ob%: ' n° d'objet attribué
END_SUB
Je n'ai pas voulu compliquer les paramètres, mais on peut facilement imaginer des boutons de couleurs différentes pour le fond et pour le texte, et des polices différentes et enrichissements pour le texte.
Revenir en haut Aller en bas
 
Afficher des icônes et des boutons personnalisés
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Curseurs personnalisés
» Outils personnalisés dans l'éditeur de Panoramic
» boutons & container
» Boutons (un peu) fantaisie
» Des jolis boutons

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: