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.
KGF_dll - nouvelles versions - Page 13 Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
KGF_dll - nouvelles versions - Page 13 Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
KGF_dll - nouvelles versions - Page 13 Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
KGF_dll - nouvelles versions - Page 13 Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
KGF_dll - nouvelles versions - Page 13 Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
KGF_dll - nouvelles versions - Page 13 Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
KGF_dll - nouvelles versions - Page 13 Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
KGF_dll - nouvelles versions - Page 13 Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 13 Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
KGF_dll - nouvelles versions - Page 13 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
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal

 

 KGF_dll - nouvelles versions

Aller en bas 
+12
JL35
Oscaribout
bignono
Pedro
pascal10000
silverman
Jicehel
papydall
Minibug
Marc
Yannick
Klaus
16 participants
Aller à la page : Précédent  1 ... 8 ... 12, 13, 14 ... 26 ... 40  Suivant
AuteurMessage
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMer 14 Juin 2017 - 13:17

Essaie avec le programme suivant, que j'ai posté également sur ton autre post, plus spécifique à ce problème:
Code:

  caption 0,"Exemple d utilisation de Outils Couleurs"
  dim res%,path$,param$,folder$, c$
  c$ = chr$(34)
   
  dll_on "KGF.dll"
  open_dialog 1
  path$ = file_name$(1)
  if path$="_" then terminate
 
  param$  = str$(Handle_form("Exemple d utilisation de Outils Couleurs"))
  folder$ = ""
  res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),0)
  if res%<0
      message "Echec du lancement !"
  end_if
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 13:03

Nouvelle version:
KGF.dll V7.75 du 26/06/2017

Nouveautés:
- affichage optionnel d'icônes dans les menus Panoramic

Modules modifiés:
KGF.dll

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

Suite à la suggestion de Papydall, j'ai analysé le source dont il parlait. Et au lieu de réinventer de nouveaux objets MAIN_MENU et SUB_MENU, j'ai simplement créé des fonctions permettant d'afficher des icônes optionnelles dans les objets Panoramic existants.

Pour cela, j'ai créé les quatre fonctions suivantes dans KGF.dll:
Code:
N_Icons% = dll_call2("SetMenuImageList",object_internal(main%),adr(il$))
Cette fonction charge une ImageList interne avec le contenu d'un fichier et l'attache au MAIN_MENU.
main% est le numéro d'objet du MAIN_MENU de Panoramic, et il$ est une chaîne de caractères contenant le nom du fichier "sauvegarde" d'une imagelist avec les icônes. La fonction retourne le nombre d'icônes dans le fichier.
Code:
res% = dll_call2("SetSubMenuImageIndex",object_internal(sub%),ind%)
Cette fonction impose une icône à afficher sur une ligne de menu.
sub% est le numéro d'objet d'un SUB_MENU de Panoramic, et ind% est l'indice de l'image (0, 1, ..., n-1) dans la ImageList. Une valeur de -1 supprime l'affichage de l'icône sur cette ligne.
Code:
N_Icons% = dll_call0("GetMenuImageListCount")
Cette fonction retourne le nombre d'icônes présentes
Code:
res% = dll_call1("CopyMenuImageListIcon",ind%)
Cette fonction copie une image de la ImageList dans le presse-papier
ind% est l'indice d'une icône dans la ImageList (0, 1, 2, ... n-1)

Dans mon WebDav, dossier DLLs, il y a un fichier MenuIcons.dat qui contient 47 icônes (0...46) à utiliser ainsi. On peut en créer d'autres.

Voici une petite démo rapide:
Code:

label montrer
dim res%, ind%, N_Icons%, il$
il$ = "MenuIcons.dat"

main_menu 100
  sub_menu 110 : parent 110,100 : caption 110,"Fichiers"
    sub_menu 111 : parent 111,110 : caption 111,"Nouveau"
    sub_menu 112 : parent 112,110 : caption 112,"-"
    sub_menu 113 : parent 113,110 : caption 113,"Sortir"
   
   
dll_on "KGF.dll"

N_Icons% = dll_call2("SetMenuImageList",object_internal(100),adr(il$))
res% = dll_call2("SetSubMenuImageIndex",object_internal(110),0)
res% = dll_call2("SetSubMenuImageIndex",object_internal(111),1)

button 1 : top 1,10 : left 1,10 : caption 1,"Montrer" : on_click 1,montrer
picture 2 : top 2,40 : left 2,10 : stretch_on 2
alpha 3 : top 3,70 : left 3,width(2)+20 : font_size 3,12

ind% = 0
end

montrer:
  res% = dll_call1("CopyMenuImageListIcon",ind%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(ind%)
  ind% = ind% + 1
  if ind%=N_Icons% then  ind% = 0

  return

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




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 13:56

Quels sont les dimensions pour les images de l' imagelist ?..
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 13:58

Toutes les icônes sont au format 16x16 pixels. Je vais fournir également un outil de fabriquer ce fichier qui n'est pas forcément compatible avec les ImageList existantes. Quoique... à essayer.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 15:10

Si, le format des ImageList est compatible ! J'ai fait une légère modif dans la DLL (sans changement de version) et on peut maintenant changer librement la ImageList, à condition qu'elle contienne des images de 16x16 pixels.

Voici une démo avec un bouton supplémentaire pour remplacer la bibliothèque par défaut, en ouvrant un des fichiers *.ilb:
Code:
' test_MenuIcons.bas

label montrer, nouveau
dim res%, ind%, N_Icons%, il$, f$
il$ = "MenuIcons.dat"

main_menu 100
  sub_menu 110 : parent 110,100 : caption 110,"Fichiers"
    sub_menu 111 : parent 111,110 : caption 111,"Nouveau"
    sub_menu 112 : parent 112,110 : caption 112,"-"
    sub_menu 113 : parent 113,110 : caption 113,"Sortir"
   
   
dll_on "KGF.dll"

N_Icons% = dll_call2("SetMenuImageList",object_internal(100),adr(il$))
res% = dll_call2("SetSubMenuImageIndex",object_internal(110),0)
res% = dll_call2("SetSubMenuImageIndex",object_internal(111),1)

button 1 : top 1,10 : left 1,10 : caption 1,"Montrer" : on_click 1,montrer
picture 2 : top 2,40 : left 2,10 : stretch_on 2
alpha 3 : top 3,70 : left 3,width(2)+20 : font_size 3,12

button 10 : top 10,10 : left 10,200 : caption 10,"Nouveau" : on_click 10,Nouveau
open_dialog 11 : filter 11,"ImageList|*.ilb"

ind% = 0
end

montrer:
  res% = dll_call1("CopyMenuImageListIcon",ind%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(ind%)
  ind% = ind% + 1
  if ind%=N_Icons% then  ind% = 0

  return

nouveau:
  f$ = file_name$(11)
  if f$="_" then return
  N_Icons% = dll_call2("SetMenuImageList",object_internal(100),adr(f$))
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 15:47

La doc KGF.chm est à jour, sur les deux sites, sur le WebDav et sur la doc en ligne !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 18:24

cheers Super, on va pouvoir faire de super main_menu.
En plus, cela doit aussi fonctionner avec MAIN_MENU_POP.
Laughing
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 21:15

Citation :
En plus, cela doit aussi fonctionner avec MAIN_MENU_POP.
Oups... Je n'ai pas essayé ça. Mais je vais tester !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 22:08

Nouvelle version:
KGF.dll V7.76 du 26/06/2017

Nouveautés:
- affichage optionnel d'icônes dans les menus popup Panoramic

Modules modifiés:
KGF.dll

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

Les fonctions précédentes gérant mes icônes pour le MainMenu on reçu un "Main" devant "Menu" dans leur nom. Ces 4 fonctions ont été dupliquées avec un "Popup" devant "Menu", et une imagelist séparée a été créé dans KGF.dll, permettant de charger des suite d'icônes différentes pour le MainMenu et pour le PopupMenu, bien que la même imagelist puisse très bien être utilisée dans les deux cas.

Voici le programme de démo adapté à cela:
Code:
' test_MenuIcons.bas

label montrerMain, nouveauMain, montrerPopup, nouveauPopup
dim res%, indMain%, indPopup%, N_Icons%, N_Icons_Pop%, il$, f$
il$ = "MenuIcons.dat"

main_menu 100
  sub_menu 110 : parent 110,100 : caption 110,"Fichiers"
    sub_menu 111 : parent 111,110 : caption 111,"Nouveau"
    sub_menu 112 : parent 112,110 : caption 112,"-"
    sub_menu 113 : parent 113,110 : caption 113,"Sortir"
   
main_menu_pop 200
  sub_menu 210 : parent 210,200 : caption 210,"Fichiers - pop"
    sub_menu 211 : parent 211,210 : caption 211,"Nouveau - pop"
    sub_menu 212 : parent 212,210 : caption 212,"-"
    sub_menu 213 : parent 213,210 : caption 213,"Sortir - pop"
   
dll_on "KGF.dll"

N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(il$))
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(110),0)
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(111),1)
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(113),2)

N_Icons_Pop% = dll_call2("SetPopupMenuImageList",object_internal(200),adr(il$))
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(210),3)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(211),4)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(213),5)

button 1 : top 1,10 : left 1,10 : caption 1,"Montrer Main" : on_click 1,montrerMain
button 11 : top 11,10 : left 11,90 : caption 11,"Montrer Popup" : on_click 11,montrerPopup
picture 2 : top 2,40 : left 2,10 : stretch_on 2
alpha 3 : top 3,70 : left 3,width(2)+20 : font_size 3,12

button 10 : top 10,10 : left 10,200 : caption 10,"Nouveau Main" : on_click 10,NouveauMain
button 20 : top 20,10 : left 20,280 : width 20,90 : caption 20,"Nouveau Popup" : on_click 20,NouveauPopup
open_dialog 12 : filter 12,"ImageList|*.ilb"

indMain% = 0
indPopup% = 0
end

montrerMain:
  res% = dll_call1("CopyMainMenuImageListIcon",indMain%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indMain%)
  indMain% = indMain% + 1
  if indMain%=N_Icons% then  indMain% = 0
  return

nouveauMain:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(f$))
  indMain% = 0
  return
 
montrerPopup:
  res% = dll_call1("CopyPopupMenuImageListIcon",indPopup%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indPopup%)
  indPopup% = indPopup% + 1
  if indPopup%=N_Icons_Pop% then  indPopup% = 0
  return

nouveauPopup:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons%_pop = dll_call2("SetPopupMenuImageList",object_internal(200),adr(f$))
  indPopup% = 0
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 22:21

Super Klaus !

Je viens de mettre des icones dans mon main_menu pour les utilisateurs de Windows.
Maintenant je vais pouvoir continuer à en mettre dans le menu pop_up..
Laughing

la variable system$ est superbe pour offrir des options supplémentaires
aux utilisateur de windows via les fonctions de KGF.
Mais il y en a certaines que je dois faire en Panoramic pour rester compatible
entre les OS.
Wink

Peut-être qu' un jour quelqu' un reprendra KGF pour en faire une version MAC...
Rolling Eyes

En attendant, cela fait quelques temps que j' attendais cette possibilité.
Elle est là et c' est une double gigue ce soir !
lol!
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 22:25

Citation :
Peut-être qu' un jour quelqu' un reprendra KGF pour en faire une version MAC...
Vaste projet ! J'avais essayé de porter KGF.dll sous Lazarus pour le rendre plus portable. J'ai abandonné. Mais les sources sont à libre disposition, pour toutes les bonnes volontées...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 22:30

Oui, c' est ce que j' avais relevé dans un autre sujet ou la critique
prenait le pas sur les commentaires.

Je ne connais pas le niveau de Irikte mais comme
il a l' air d' être le seul sur cet OS peut-être sera t il tenté... Wink
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 23:12

Voici ce que cela représente, en volume:
Citation :
KGF.dpr 189 lignes = fichier de base du projet
*.pas 299 fichiers 239296 lignes = tous les modules composant KGF.dll
C'est énorme...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyLun 26 Juin 2017 - 23:32

Petite info supplémentaire:
les fonctions SetSubMainMenuImageIndex et SetSubPopupMenuImageIndex peuvent être appelées plusieurs fois, pour la même ligne de menu. L'effet sera un changement d'icône sur la ligne ! En passant un indice de -1, on efface l'icône de la ligne !

Ceci est mon post numéro DIX MILLE sur ce forum !

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

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 1:05

Pour apporter mon grain de sel et faire un peu pro, j’ai modifié le dernier code-exemple de Klaus pour ajouter des raccourcis-clavier.
Dans les captions de sub-menu, si on précède le texte par le caractère 9 (tabulation), ça permet une justification du texte à droite et surtout le soulignement du caractère servant comme raccourcis. (le choix du caractère est fait par le système lui-même).

Par contre, dans les captions de button, c’est le caractère Ampersand (&) qui indique la lettre servant comme raccourcis et la souligne.
Dans les deux cas (sub-menu ou button), on peut soit cliquer, soit taper la lettre soulignée.

Code:

' test_MenuIcons.bas

label montrerMain, nouveauMain, montrerPopup, nouveauPopup
dim res%, indMain%, indPopup%, N_Icons%, N_Icons_Pop%, il$, f$
dim tab$ : tab$ = chr$(9) : ' <---------------------------------------- Papydall
font_name 0,"arial"       : ' <---------------------------------------- Papydall
il$ = "MenuIcons.dat"

main_menu 100
  sub_menu 110 : parent 110,100 : caption 110,"Fichiers"
    sub_menu 111 : parent 111,110 : caption 111,tab$ + "Nouveau" :' <-- Papydall
    sub_menu 112 : parent 112,110 : caption 112,"-"
    sub_menu 113 : parent 113,110 : caption 113,tab$ + "Sortir"  :' <-- Papydall
    
main_menu_pop 200
  sub_menu 210 : parent 210,200 : caption 210,"Fichiers - pop"
    sub_menu 211 : parent 211,210 : caption 211,"Nouveau - pop"
    sub_menu 212 : parent 212,210 : caption 212,"-"
    sub_menu 213 : parent 213,210 : caption 213,"Sortir - pop"
    
dll_on "KGF.dll"

N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(il$))
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(110),0)
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(111),1)
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(113),2)

N_Icons_Pop% = dll_call2("SetPopupMenuImageList",object_internal(200),adr(il$))
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(210),3)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(211),4)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(213),5)

button 1 : top 1,10 : left 1,10 : caption 1,"&Montrer Main" : on_click 1,montrerMain  :' <-- Papydall
button 11 : top 11,10 : left 11,90 : caption 11,"Montrer &Popup" : on_click 11,montrerPopup :' <-- Papydall
picture 2 : top 2,40 : left 2,10 : stretch_on 2
alpha 3 : top 3,70 : left 3,width(2)+20 : font_size 3,12

button 10 : top 10,10 : left 10,200 : caption 10,"Nouveau M&ain" : on_click 10,NouveauMain :' <-- Papydall
button 20 : top 20,10 : left 20,280 : width 20,90 : caption 20,"Nouveau P&opup" : on_click 20,NouveauPopup :' <-- Papydall
open_dialog 12 : filter 12,"ImageList|*.ilb"

indMain% = 0
indPopup% = 0
end

montrerMain:
  res% = dll_call1("CopyMainMenuImageListIcon",indMain%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indMain%)
  indMain% = indMain% + 1
  if indMain%=N_Icons% then  indMain% = 0
  return

nouveauMain:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(f$))
  indMain% = 0
  return
  
montrerPopup:
  res% = dll_call1("CopyPopupMenuImageListIcon",indPopup%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indPopup%)
  indPopup% = indPopup% + 1
  if indPopup%=N_Icons_Pop% then  indPopup% = 0
  return

nouveauPopup:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons%_pop = dll_call2("SetPopupMenuImageList",object_internal(200),adr(f$))
  indPopup% = 0
  return


Les lignes ajoutées ou modifiées sont repérées par ' <-- Papydall



Ceci est mon post numéro cinq mille trois cent quatre-vingt-huit sur ce forum !
C'est très loin derrière Klaus
Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 1:14

Très bien, Papydall ! C'est en effet plus "pro".

Voici un petit bonus - un outil pour inspecter et sélectionner l'icône approprié:
Code:
' visualier_les_icones_du_menu.bas

label debut, fin, prec, suiv, ilb, defaut

dim res%, ilb$, icon%, ind%, f$

ilb$ = "MenuIcons.dat"

dll_on "KGF.dll"


main_menu 100

button 1 : top 1,10 : left 1, 10 :caption 1,"Début"     : on_click 1,debut
button 2 : top 2,10 : left 2,100 :caption 2,"Précédent" : on_click 2,prec
button 3 : top 3,10 : left 3,190 :caption 3,"Suivant"   : on_click 3,suiv
button 4 : top 4,10 : left 4,280 :caption 4,"Fin"       : on_click 4,fin

picture 10 : top 10,60 :left 10,120 : width 10,16 : height 10,16
picture 11 : top 11,60 :left 11,160 : stretch_on 11
alpha 12 : top 12,180 : left 12,160

button 21 : top 21,60 : left 21,300 : caption 21,"ILB" : on_click 21,ilb
button 22 : top 22,90 : left 22,300 : caption 22,"Défaut" : on_click 22,defaut


open_dialog 31 : filter 31,"ImageList|*.ilb"

icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(ilb$))
ind% = 0
res% = dll_call1("CopyMainMenuImageListIcon",ind%)
clipboard_paste 10
clipboard_paste 11
caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
end

debut:
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
prec:
  if ind%=0 then return
  ind% = ind% - 1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
suiv:
  if ind%=(icon%-1) then return
  ind% = ind% + 1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
fin:
  ind% = icon%-1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
ilb:
  f$ = file_name$(31)
  if f$="_" then return
  if file_exists(f$)=0 then return
  icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(f$))
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return  
  
defaut:
  icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(ilb$))
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return  

D'ailleurs, et je pense que cela intéresse surtout Yannick: avez-vous remarqué que, dans ce code, il y a seulement un objet MAIN_MENU, mais pas de SUB_MENU ? Un MAIN_MENU est suffisant pour charger une ImageList (fichier de type ILB) et permet de la parcourir ! Pas besoin de créer un objet ImageList pour cela !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 1:42

Klaus a écrit:
D'ailleurs, et je pense que cela intéresse surtout Yannick: avez-vous remarqué que, dans ce code, il y a seulement un objet MAIN_MENU, mais pas de SUB_MENU ? Un MAIN_MENU est suffisant pour charger une ImageList (fichier de type ILB) et permet de la parcourir ! Pas besoin de créer un objet ImageList pour cela !

Puisque c’est ainsi, je rajoute les raccourcis, si, si !

Code:

' visualier_les_icones_du_menu.bas
label debut, fin, prec, suiv, ilb, defaut
dim res%, ilb$, icon%, ind%, f$
ilb$ = "MenuIcons.dat"

dll_on "KGF.dll"

main_menu 100

button 1 : top 1,10 : left 1, 10 :caption 1,"&Début"    : on_click 1,debut
button 2 : top 2,10 : left 2,100 :caption 2,"&Précédent" : on_click 2,prec
button 3 : top 3,10 : left 3,190 :caption 3,"&Suivant"  : on_click 3,suiv
button 4 : top 4,10 : left 4,280 :caption 4,"&Fin"      : on_click 4,fin

picture 10 : top 10,60 :left 10,120 : width 10,16 : height 10,16
picture 11 : top 11,60 :left 11,160 : stretch_on 11
alpha 12 : top 12,180 : left 12,160

button 21 : top 21,60 : left 21,300 : caption 21,"&ILB" : on_click 21,ilb
button 22 : top 22,90 : left 22,300 : caption 22,"Dé&faut" : on_click 22,defaut


open_dialog 31 : filter 31,"ImageList|*.ilb"

icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(ilb$))
ind% = 0
res% = dll_call1("CopyMainMenuImageListIcon",ind%)
clipboard_paste 10
clipboard_paste 11
caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
end

debut:
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
prec:
  if ind%=0 then return
  ind% = ind% - 1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
suiv:
  if ind%=(icon%-1) then return
  ind% = ind% + 1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
fin:
  ind% = icon%-1
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
  
ilb:
  f$ = file_name$(31)
  if f$="_" then return
  if file_exists(f$)=0 then return
  icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(f$))
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return  
  
defaut:
  icon% = dll_call2("SetMainMenuImageList",object_internal(100),adr(ilb$))
  ind% = 0
  res% = dll_call1("CopyMainMenuImageListIcon",ind%)
  clipboard_paste 10
  clipboard_paste 11
  caption 12,"Indice: "+str$(ind%)+"/"+str$(icon%-1)
  return
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8611
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 9:28

Pour ma part, j' en suis 7871 ! 
Que de touches martyrisées à nous 3...environ 1/3 des messages du forum Laughing


Klaus a écrit:
D'ailleurs, et je pense que cela intéresse surtout Yannick: avez-vous remarqué que, dans ce code, il y a seulement un objet MAIN_MENU, mais pas de SUB_MENU ? Un MAIN_MENU est suffisant pour charger une ImageList (fichier de type ILB) et permet de la parcourir ! Pas besoin de créer un objet ImageList pour cela !


C' est une curiosité mais bon on ne va pas faire la fine bouche pour une fois que windows nous fait faire des économies d' écriture...
Laughing

Pouvoir changer les icônes çà c' est le must par rapport au thème choisi par l' utilisateur.
voir pour les menus multiple style oui/non ou pour remplacer un check par une puce plus joli.
En tout cas félicitations pour ces nouvelles fonctions.

Et bravo à Papydall pour les ajouts.
Revenir en haut Aller en bas
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 13:20

Nouvelle version:
KGF.dll V7.77 du 27/06/2017

Nouveautés:
- nouvelles fonctions SetSubMainMenuGroupID et SetSubPopupMenuGroupID

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

La doc est réorganisée. Les fonctions de gestion du menu ont été regroupées dans un chapitre approprié accessible directement par le sommaire. Et j'ai rendu accessible la notion de "groupe" de lignes. Cette notion permet de lier deux ou plusieus lignes (d'un même sous-menu) de sorte à former un genre de CONTAINER_OPTION dans ce sous-menu ! Une seule ligne de ce groupe sera toujours cochée, et le fait de cliquer sur une autre ligne décoche la ligne actuellement cichée. Juste une remarque: le fait d'afficher des icônes sur une ligne de menu "cache" la checkbox montrant le fait d'être coché ou non. Ces deux choix sont donc mutuellement exclusifs.

Dans le programme de démo ci-après, le menu "Fichiers" a été étendu pour avoir 3 lignes avant le séparateur. Ces 3 lignes forment le groupe 1 et on peut observer l'action du clic sur une de ces lignes. Le menu popup a été étendu de la même manière, mais sans définir un groupe, et donc chaque ligne peut montrer une icone. Cet aspect des "groupes" permet de faire des choses sympathiques dans les menus, au niveau de la configuration d'un logiciel, par exemple.
Code:
' test_MenuIcons.bas

label montrerMain, nouveauMain, montrerPopup, nouveauPopup
dim res%, indMain%, indPopup%, N_Icons%, N_Icons_Pop%, il$, f$
il$ = "MenuIcons.dat"

main_menu 100
  sub_menu 110 : parent 110,100 : caption 110,"Fichiers"
    sub_menu 111 : parent 111,110 : caption 111,"Nouveau"
    sub_menu 112 : parent 112,110 : caption 112,"Ouvrir"
    sub_menu 113 : parent 113,110 : caption 113,"Enregistrer"
    sub_menu 114 : parent 114,110 : caption 114,"-"
    sub_menu 115 : parent 115,110 : caption 115,"Sortir"
    
main_menu_pop 200
  sub_menu 210 : parent 210,200 : caption 210,"Fichiers - pop"
    sub_menu 211 : parent 211,210 : caption 211,"Nouveau - pop"
    sub_menu 212 : parent 212,210 : caption 212,"Ouvrir"
    sub_menu 213 : parent 213,210 : caption 213,"Enregistrer"
    sub_menu 214 : parent 214,210 : caption 214,"-"
    sub_menu 215 : parent 215,210 : caption 215,"Sortir - pop"
    
dll_on "KGF.dll"

' les icônes pour le MAIN_MENU
N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(il$))
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(110),0)
' les 3 lignes suivantes dy menu seront un groupe de type OPTION
' res% = dll_call2("SetSubMainMenuImageIndex",object_internal(111),1)
' res% = dll_call2("SetSubMainMenuImageIndex",object_internal(112),2)
' res% = dll_call2("SetSubMainMenuImageIndex",object_internal(113),3)
res% = dll_call2("SetSubMainMenuImageIndex",object_internal(115),4)

' joindre ces 3 lignes en un groupe de OPTION no 1
res% = dll_call2("SetSubMainMenuGroupID",object_internal(111),1)
res% = dll_call2("SetSubMainMenuGroupID",object_internal(112),1)
res% = dll_call2("SetSubMainMenuGroupID",object_internal(113),1)
' la dernière ligne sera automatiquement cocher !

' les icônes pour le POPUP_MENU
N_Icons_Pop% = dll_call2("SetPopupMenuImageList",object_internal(200),adr(il$))
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(210),5)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(211),6)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(212),7)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(213),8)
res% = dll_call2("SetSubPopupMenuImageIndex",object_internal(215),9)

button 1 : top 1,10 : left 1,10 : caption 1,"Montrer Main" : on_click 1,montrerMain
button 11 : top 11,10 : left 11,90 : caption 11,"Montrer Popup" : on_click 11,montrerPopup
picture 2 : top 2,40 : left 2,10 : stretch_on 2
alpha 3 : top 3,70 : left 3,width(2)+20 : font_size 3,12

button 10 : top 10,10 : left 10,200 : caption 10,"Nouveau Main" : on_click 10,NouveauMain
button 20 : top 20,10 : left 20,280 : width 20,90 : caption 20,"Nouveau Popup" : on_click 20,NouveauPopup
open_dialog 12 : filter 12,"ImageList|*.ilb"

indMain% = 0
indPopup% = 0
end

montrerMain:
  res% = dll_call1("CopyMainMenuImageListIcon",indMain%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indMain%)
  indMain% = indMain% + 1
  if indMain%=N_Icons% then  indMain% = 0
  return

nouveauMain:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons% = dll_call2("SetMainMenuImageList",object_internal(100),adr(f$))
  indMain% = 0
  return
  
montrerPopup:
  res% = dll_call1("CopyPopupMenuImageListIcon",indPopup%)
  clipboard_paste 2
  caption 3,"Indice: "+str$(indPopup%)
  indPopup% = indPopup% + 1
  if indPopup%=N_Icons_Pop% then  indPopup% = 0
  return

nouveauPopup:
  f$ = file_name$(12)
  if f$="_" then return
  N_Icons_pop% = dll_call2("SetPopupMenuImageList",object_internal(200),adr(f$))
  indPopup% = 0
  return


Dernière édition par Klaus le Mar 27 Juin 2017 - 17:18, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 13:44

Hallo Klaus
Möglicherweise müssen Sie "ein wenig Ruhe!  tongue

Je crois que tu n’as pas posté le bon code.
C’est le même que celui de la version précédente.

A+
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 16:43

Oups... C'était un copier/coller du mauvais onglet ! Voilà qui est corrigé. Merci d'avoir veillé, Papydall !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 16:58

En sélectionnant Nouveau Popup Embarassed

KGF_dll - nouvelles versions - Page 13 111

EDIT

Je viens de voir l'erreur

Code:

 N_Icons_pop% = dll_call2("SetPopupMenuImageList",object_internal(200),adr(f$))


Le % n'était pas confortablement placé !!! tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyMar 27 Juin 2017 - 17:19

Oui, je l'ai v... Corrigé ci-dessus.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyVen 30 Juin 2017 - 1:50

Nouvelle version:
KGF.dll V7.78 du 28/06/2017

Nouveautés:
- nouvel objet: ImageView

Modules modifiés:
KGF.dll

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

Ce nouvel objet réalise un affichage d'aperçus d'images. On dimensionne l'objet comme on veut, et on définit la taille des icônes lors de la création de l'objet. Dès lors, on peut ajouter autant d'images qu'on veut (BMP, JPG, JPEG, GIF, PNG, ICO et bientôt d'autres). Elles seront toutes adaptées aux dimensions prédéfinies. L'objet les affiche par lignes et colonnes, selon les dimensions de l'objet. Même si toutes les icônes ne tiennent pas simultanément dans l'affichage, elles sont néanmoins mémorisées. Il y a des fonctions permettant de scroller l'affichage par programme, et une scrollbar verticale qui permet de le faire par la souris. Un clic sur une des icônes envoie un USER_EVENT au programme Panoramic, avec l'indice de l'image cliquée. Une fonction permet alors de récupérer le nom du fichier associé.

Le programme de démo suivant fonctionne de la manière suivante:
- un bouton "Créer" crée l'objet le le place dans la form 0
- un bouton "Vider" efface toutes les icônes déjà chargées dans l'objet
- un bouton "Supprimer" vide puis supprime l'objet
- un bouton "Charger" ouvre un sélecteur de dossiers. Choisir ici un dossier contenant des images, puis valider. Toutes les images seront alors chargés sous forme d'icônes de taille identique, et l'objet affichera autant d'icônes que possible pour remplir la page d'affichage. La taille de l'ascenseur vertivcal s'adapte automatiquement.
- une série de boutons à gauche permet la navigation dans l'affichage
- l'ascenseur a les fonctions suivantes:
un clic sur la flèche en haut recule à la ligne précédente
un clic sur la flèche en bas avance à la ligne suivante
un clic dans l'espace libre en-dessous du bouton coulissant avance d'une page
un clic dans l'espace libre au-dessus du bouton coulissant reculed'une page
tirer le bouton coulissant vers le haut fait apparaître la ligne 0
tirer le bouton coulissant vers le bas fait apparaître la dernière ligne
- un clic sur une des icônes, quelque soit la première ligne visible dans l'affichage, récupère l'indice de l'image cliquée ainsi que son nom de fichier.

Je considère ceci comme un "ballon d'essai", à tester si possible. Je suis comme d'habiture ouvert aux remarques, sachant que j'ai conçu le dessin et le fonctionnement tout seul, mais pas forcément en harmonie avec ce qui pourrait intéresser les Panoramiciens. Donc, pour le moment, il n'y a pas de doc - elle suivra lorsque le produit sera stabilisé.

Voici a démo:
Code:
' test_ImageView.bas

label creer, charger, vider, supprimer, localiser
label haut, pprec, prec, suiv, psuiv, bas, UserEvent

dim res%, IV%, racine$, dossier$, current$, f$, ext$, ind%, dern%
dim nom$, x%, y%, i%
dim types$ : types$ = ".bmp.jpg.jpeg.gif.ico.png"


full_space 0
button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,110 : caption 2,"Vider" : on_click 2,vider : inactive 2
button 3 : top 3,10 : left 3,200 : caption 3,"Supprimer" : on_click 3,supprimer : inactive 3
button 21 : top 21,10 : left 21,430 : caption 21,"Charger" : on_click 21,charger : inactive 21

dll_on "KGF.dll"

button 101 : top 101,40 : left 101,10 : caption 101,"Haut"        : on_click 101,haut  : inactive 101
button 102 : top 102,65 : left 102,10 : caption 102,"Page préc."  : on_click 102,pprec : inactive 102
button 103 : top 103,90 : left 103,10 : caption 103,"Ligne préc." : on_click 103,prec  : inactive 103
button 104 : top 104,115 : left 104,10 : caption 104,"Lign suiv." : on_click 104,suiv  : inactive 104
button 105 : top 105,140 : left 105,10 : caption 105,"Page suiv." : on_click 105,psuiv : inactive 105
button 106 : top 106,165 : left 106,10 : caption 106,"Bas"        : on_click 106,bas   : inactive 106

panel 200 : hide 200 : width 200,250 : color 200,255,255,0
  top 200,(screen_y-height(200))/2 : left 200,(screen_x-width(200))/2
  caption 200,"Chargement en cours..."
  font_size 200,16 :font_color 200,255,0,0 : font_bold 200

dern% = -1

on_user_event UserEvent

end

creer:
  if IV%<>0 then return
' message "a: "+str$(LV%)  
  IV% = dll_call4("CreateImageView",handle(0),50,50,adr(dern%))
' message "b: "+str$(LV%)  
  res% = dll_call5("ImageViewGeometry",IV%,90,40,400,500)
  inactive 1
  active 2
  active 3
  active 21
  return
  
vider:
  res% = dll_call1("ClearImageView",IV%)
    for i%=101 to 106
      inactive i%
    next i%
  dern% = -1
  return
  
supprimer:
  res% = dll_call1("DeleteImageView",IV%)
  if res%=0
    IV% = 0
    active 1
    inactive 2
    inactive 3
    inactive 21
    for i%=101 to 106
      inactive i%
    next i%
  end_if
  dern% = -1
  return
  
charger:
  current$ = dir_current$
  racine$ = dir_current$
  dossier$ = string$(255," ")
  res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),0)
  to_foreground 0
  dossier$ = trim$(dossier$)
  if dossier$=""
    dir_change current$
    return
  end_if
  dir_change dossier$
  f$ = file_find_first$
  inactive 0
  show 200
  repeat
    f$ = file_find_next$
    if f$="_" then exit_repeat
    if Left$(f$,1)<>"."
      ext$ = lower$(file_extract_extension$(f$))
      if instr(types$,ext$)>0
        res% = dll_call3("AddImageToImageView",IV%,adr(f$),adr(ind%))
      end_if
    end_if
  until f$="_"
  file_find_close
  active 0
  hide 200
  message "Chargement de "+str$(ind%+1)+" images terminé"+chr$(13)+chr$(10)+"Dernier indice visible: "+str$(dern%)
  dir_change current$
    for i%=101 to 106
      active i%
    next i%
  return
  
haut:
  res% = dll_call3("ScrollImageView",IV%,1,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
  
pprec:
  res% = dll_call3("ScrollImageView",IV%,2,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
  
prec:
  res% = dll_call3("ScrollImageView",IV%,3,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
  
suiv:
  res% = dll_call3("ScrollImageView",IV%,4,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
  
psuiv:
  res% = dll_call3("ScrollImageView",IV%,5,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
  
bas:
  res% = dll_call3("ScrollImageView",IV%,6,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
    
localiser:
  if dern%<0 then return
  x% = mouse_x_left_down(100)
  y% = mouse_y_left_down(100)
  nom$ = string$(255," ")
  res% = dll_call4("GetListImageFileName",IV%,x%,y%,adr(nom$))
  nom$ = trim$(nom$)
  message "Indice: "+str$(res%)+"   "+nom$
  return

UserEvent:
  if User_Event_LParam<>hex("03000000") then return : ' pas ImageView ?
  if bin_and(User_Event_WParam,hex("FFFF0000"))<>hex("00010000") then return : ' pas ImageSelect ?
  ind% = bin_and(User_Event_WParam,hex("0000FFFF"))
'   message "WPARAM="+hex$(User_Event_WParam)+"   "+"LPARAM="+hex$(User_Event_LParam)
  nom$ = string$(255," ")
  res% = dll_call3("GetImageViewFileName",IV%,ind%,adr(nom$))
  nom$ = trim$(nom$)
  message "indice="+str$(ind%)+"  "+nom$
  return

Et voici une capture:
KGF_dll - nouvelles versions - Page 13 Aa110

PS
Juste pour la curiosité: cet objet a été entièrement créé par moi, à partir d'un PANEL Delphi, dont j'utilise le canvas pour tout dessiner, y compris la scrollbar.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7009
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 EmptyVen 30 Juin 2017 - 2:38

L’événement Charger ouvre un sélecteur de dossiers …
Il ouvre le répertoire en cours qui n’est pas toujours le bon et … aucun moyen d’en choisir un autre !

Pour tester le code, j’ai du ajouter dans le s/p charger : en 1ère ligne
Code:
dir_change "C:\Users\acer\Desktop\Panoramic\...

Mais il vaut mieux ouvrir un open_dialog.

C’est un objet utile, merci Klaus
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 13 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 13 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 13 sur 40Aller à la page : Précédent  1 ... 8 ... 12, 13, 14 ... 26 ... 40  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions
» Synedit_Editor - nouvelles versions
» version instantanée PANORAMIC V 0.9.25i6 du 14/12/2013

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: