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
» Immortaliser les photos de famille
par Jean Claude Hier à 21:24

» Concours de Morpions
par jjn4 Hier à 16:34

» Tout est tranquille
par Jean Claude Ven 22 Sep 2017 - 21:41

» Texte en gif animé
par JL35 Ven 22 Sep 2017 - 13:29

» BasicEditor
par Yannick Mer 20 Sep 2017 - 17:17

» Simuler l’appui d'une touche ou combinaison de touches.
par pascal10000 Lun 18 Sep 2017 - 19:30

» Utilisation de HVIEWER pour afficher des images
par papydall Lun 18 Sep 2017 - 17:43

» Panoramic et les gifs animés.
par papydall Lun 18 Sep 2017 - 16:32

» recover source
par pascal10000 Dim 17 Sep 2017 - 14:21

» Recent dans vos menu
par Jean Claude Sam 16 Sep 2017 - 11:41

» Comment centrer un texte 3D.
par pascal10000 Ven 15 Sep 2017 - 20:20

» Carte interface 16 entrées et 16 sorties
par Jicehel Ven 15 Sep 2017 - 16:30

» Version instantanée V 0.9.28i9 possédant l'objet SYNEDIT
par pascal10000 Ven 15 Sep 2017 - 16:20

» Compilateur FBPano
par jean_debord Ven 15 Sep 2017 - 9:59

» 1 (en analyse): 3D_TARGET_IS ne fonctionne pas sur 3D_TEXT
par Jack Jeu 14 Sep 2017 - 19:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Septembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Essai de IconButton dans KGF.dll - test préliminaire

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

avatar

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

MessageSujet: Essai de IconButton dans KGF.dll - test préliminaire   Mer 5 Juil 2017 - 1:22

Pour ceux qui sont motivés par des nouveautés dans KGF.dll, voici un joli morceau à tester, avant publication de la version officielle. Il faut télécharger KGF.dll sur mon WebDav (pas sur les deux sites !), puis faire exécuter le code suivant avec la dernière version de Panoramic:
Code:
' test_IconButton.bas

label creer, supprimer, images, image1, image2, image3, image0, UserEvent
label stretch, stretch1, stretch2, stretch3
label imglist, imglist1, imglist2, imglist3, imglist0

dim res%, IBTN1%, IBTN2%, IBTN3%, IL%, nb%, hint$
dim f$, stretch1%, stretch2%, stretch3%, x%, nlist%
dim size% : size% = 32
dim m1% : m1% = -1
dim stretch% : stretch% = 0
stretch1% = stretch%
stretch2% = stretch%
stretch3% = stretch%
dim ilb$ : ilb$ = "KGF.ilb"

on_user_event UserEvent

dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,100 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2

button 3 : top 3,10 : left 3,220 : caption 3,"Images" : width 3,80 : on_click 3,images : inactive 3
button 31 : top 31,35 : left 31,220 : caption 31,"1" : width 31,20 : on_click 31,image1 : inactive 31
button 32 : top 32,35 : left 32,250 : caption 32,"2" : width 32,20 : on_click 32,image2 : inactive 32
button 33 : top 33,35 : left 33,280 : caption 33,"3" : width 33,20 : on_click 33,image3 : inactive 33
button 39 : top 39,60 : left 39,220 : caption 39,"Effacer" : width 39,80 : on_click 39,image0 : inactive 39

button 4 : top 4,10 : left 4,320 : caption 4,"Stretch on" : width 4,80 : on_click 4,stretch : inactive 4
button 41 : top 41,35 : left 41,320 : caption 41,"1" : width 41,20 : on_click 41,stretch1 : inactive 41
button 42 : top 42,35 : left 42,350 : caption 42,"2" : width 42,20 : on_click 42,stretch2 : inactive 42
button 43 : top 43,35 : left 43,380 : caption 43,"3" : width 43,20 : on_click 43,stretch3 : inactive 43

button 5 : top 5,10 : left 5,420 : caption 5,"ImageList" : width 5,80 : on_click 5,imglist : inactive 5
button 51 : top 51,35 : left 51,420 : caption 51,"1" : width 51,20 : on_click 51,imglist1 : inactive 51
button 52 : top 52,35 : left 52,450 : caption 52,"2" : width 52,20 : on_click 52,imglist2 : inactive 52
button 53 : top 53,35 : left 53,480 : caption 53,"3" : width 53,20 : on_click 53,imglist3 : inactive 53
button 59 : top 59,60 : left 59,420 : caption 59,"Effacer" : width 59,80 : on_click 59,imglist0 : inactive 59

open_dialog 99 : filter 99,"Images|*.ico;*.bmp;*.jpg"

IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
message ilb$+" contient "+str$(nlist%)+" icônes"

end


creer:
  x% = 40
  IBTN1% = dll_call3("CreateIconButton",handle(0),1,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN1%,x%,100,size%,size%,stretch1%)
  hint$ = "Ceci est le bouton 1"
  res% = dll_call2("SetIconButtonHint",IBTN1%,adr(hint$))
  
  x% = x% + size%
  IBTN2% = dll_call3("CreateIconButton",handle(0),2,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN2%,x%,100,size%,size%,stretch2%)
  hint$ = "Ceci est le bouton 2"
  res% = dll_call2("SetIconButtonHint",IBTN2%,adr(hint$))
  
  x% = x% + size%
  IBTN3% = dll_call3("CreateIconButton",handle(0),3,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN3%,x%,100,size%,size%,stretch3%)
  hint$ = "Ceci est le bouton 3"
  res% = dll_call2("SetIconButtonHint",IBTN3%,adr(hint$))
  
  inactive 1
  active 2
  active 3
  active 31
  active 32
  active 33
  active 39
  active 4
  active 41
  active 42
  active 43
  active 5
  active 51
  active 52
  active 53
  active 59
  return

supprimer:
  res% = dll_call1("DeleteIconButton",IBTN1%)
  if res%=0 then IBTN1% = 0
  res% = dll_call1("DeleteIconButton",IBTN2%)
  if res%=0 then IBTN2% = 0
  res% = dll_call1("DeleteIconButton",IBTN3%)
  if res%=0 then IBTN3% = 0
  if (IBTN1%=0) and (IBTN2%=0) and (IBTN3%=0)
    inactive 2
    inactive 3
    inactive 31
    inactive 32
    inactive 33
    inactive 39
    inactive 4
    inactive 41
    inactive 42
    inactive 43
    inactive 5
    inactive 51
    inactive 52
    inactive 53
    inactive 59
    active 1
  end_if
  return
  
images:
  ChargerImage(IBTN1%)
  ChargerImage(IBTN2%)
  ChargerImage(IBTN3%)
  return
  
image1:
  ChargerImage(IBTN1%)
  return
image2:
  ChargerImage(IBTN2%)
  return
image3:
  ChargerImage(IBTN3%)
  return
image0:
  res% = dll_call2("SetIconButtonImage",IBTN1%,0)
  res% = dll_call2("SetIconButtonImage",IBTN2%,0)
  res% = dll_call2("SetIconButtonImage",IBTN3%,0)
  return
  
sub ChargerImage(IBTN%)
  f$ = file_name$(99)
  if f$="_" then return
  if file_exists(f$)=0 then return
  res% = dll_call2("SetIconButtonImage",IBTN%,adr(f$))
end_sub

stretch:
  stretch% = 1 - stretch%
  select stretch%
    case 0
      caption 4,"Stretch on"
    case 1
      caption 4,"Stretch off"
  end_select
  stretch1% = stretch%
  stretch2% = stretch%
  stretch3% = stretch%
  Stretch(IBTN1%,stretch1%)
  Stretch(IBTN2%,stretch2%)
  Stretch(IBTN3%,stretch3%)
  return
  
stretch1:
  stretch1% = 1 - stretch1%
  Stretch(IBTN1%,stretch1%)
  return
  
stretch2:
  stretch2% = 1 - stretch2%
  Stretch(IBTN2%,stretch2%)
  return
  
stretch3:
  stretch3% = 1 - stretch3%
  Stretch(IBTN3%,stretch3%)
  return
  
sub Stretch(IBTN%,stretch%)
  res% = dll_call6("IconButtonGeometry",IBTN%,M1%,M1%,M1%,M1%,stretch%)
end_sub
  
imglist:
  ImgList(IBTN1%)
  ImgList(IBTN2%)
  ImgList(IBTN3%)
  return
  
imglist1:
  ImgList(IBTN1%)
  return

imglist2:
  ImgList(IBTN2%)
  return

imglist3:
  ImgList(IBTN3%)
  return
  
imglist0:
  res% = dll_call3("SetIconButtonImageList",IBTN1%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN2%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN3%,IL%,0)
  return

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub

UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("FFFF"))
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)
  return

Ce programme propose un bouton "Créer", seul actif initialement.
Un clic sur ce bouton crée 3 boutons du nouveau type IconButton, carrés en format 20x20 pixels.
Un clic sur un de ces boutons envoie un USER_EVENT qui permet d'identifier le bouton cliqué.
La particularité de ces boutons est de pouvoir recevoir des images en provenance d'un fichier (ici, bmp, jpg, gif, ...) ou une icône en provenance d'un objet ImageList. La provenance ImageList a priorité sur l'image en provenance d'un fichier, mais les deux sont éventuellemt mémorisées dans le bouton. Si l'image de la ImageList est effacée, celle en provenance du fichier réapparaît.
- les images peuvent être affichées dans un petit format, centrées dans le bouton, ou remplir le bouton façon STRETCH_DRAW.
On peut à tout moment basculer de l'affichage normal au STRETCH et inversement. Le programme permet de le faire pour un bouton individuel ou gloalement pour tous les boutons.
Chaque bouton peut avoir un "hint".
La taille (carrée) du bouton peut être librement choisie. Si l'option STRETCH est activée pour un bouton, l'image (quelque soit sa provenance) remplira le bouton (sauf une bordure de 2 pixels afin de voir les bords du bouton).
Le pixel en bas à gauche de l'image est systématiquement pris comme couleur de transparence de l'image.

Dites-moi ce que vous en pensez. Pour ma part, j'utilise cela pour construire des palettes d'outils, façon barre d'outils mais sur deux ou 3 rangs, gagnant ainsi une place appréciable dans la conception des GUIs. Avec, bien sur, une ImageList dédiée pour l'application. Le programme de démo utilise KGF.ILB (disponible également dans le WebDav, dossier DLLs\IcoLibrary.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 5 Juil 2017 - 12:30

@ Klaus,

Effectivement, cela peut rendre service pour ajouter des barres d' outils supplémentaires.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Jeu 6 Juil 2017 - 17:01

Voici une petite démo qui montre la création de 2 toolbars avec des IconButtons.
La première est une ligne de 5 boutons.
La seconde est constituée de 2 lignes de 4 boutons.
Tous les boutons reçoivent des icônes choisies aléatoirement dans KGF.ilb.
Le hint indique le bouton et la toolbar.
Un clic sur un des boutons affiche des infos techniques et le numéro du bouton et celui de la toolbar.
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%   : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
  
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5+(i%-1)*size%,5,size%,size%,1)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5+(j%-1)*size%,5+(k%-1)*size%,size%,size%,1)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Voici à quoi ça ressemble:
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Jeu 6 Juil 2017 - 20:19

Bien que je n’eusse compris qu’à moitié le pourquoi du comment, j’apprécie bien ce que tu fais, Maître Klaus !

Je vois que tu es (encore) à la version 0.9.28i9 ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Jeu 6 Juil 2017 - 20:33

Oui, pour des raisons pratiques... mais j'ai installé la version V0.9.28i11 pour les tests importants. Et pour les IconButtons, ça vaut mieux, car le problème de décalage sur l'évèment ON_USER_EVENT est résolu.

Evolution en cours, déjà opérationnelle chez moi:
- une fonction DockIconButtonToIconButton permettant de "coller" in IconButton contre un autre, à gauche, à droite, en haut ou en bas (ceci permet de ne pas calculer soi-même toutes les positions)
- une fonction DockOjects faisant la même chose sur tout objet "fenêtré" (ayant un handle), à condition qu'ils soient dans le même réceptacle, bien sûr. Ceci permet d'accoller des bares d'outils les unes aux autres, par exemple, de contruire un tableau de EDIT, etc.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Jeu 6 Juil 2017 - 21:57

Oui, pratique de ne pas avoir à calculer toutes les positions.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Jeu 6 Juil 2017 - 22:17

Alors, recharge KGF.dll de mon WebDav, dossier DLLs, et essaie le code suivant:
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%  : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
 
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5,5,size%,size%,1)
  if i%>1 then res% = dll_call3("DockIconButtonToIconButton",IB1%(i%),IB1%(i%-1),3)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5,5,size%,size%,1)
    if (i%>1) and (i%<=4) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    if i%=5 then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(1),4)
    if (i%>5) and (i%<=8) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Le résultat visuel est identique, mais regarde bien le code de création des boutons - ils sont tous créés en (5,5), puis "dockés" les uns aux autres.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Jeu 6 Juil 2017 - 22:42

Oui, je vois.
Cette fonction peut être intéressante pour l' alignement d' autres objets de la même façon,
collé les uns aux autres, Pictures, Edit, etc...
Avec des Pictures, on peut simuler un célèbre objet Query.Laughing

Le plus ennuyeux reste à faire, la doc...
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Jeu 6 Juil 2017 - 22:53

Pour les autres objets, cela se fait par la nouvelle fonction DockObjects. Recharge à nouveau la DLL (désolé...) et essaie ce code-ci:
Code:
' demo_toolbars_avec_IcinButtons.bas

label UserEvent

dim TB1%, TB2%  : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
 
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5,5,size%,size%,1)
  if i%>1 then res% = dll_call3("DockIconButtonToIconButton",IB1%(i%),IB1%(i%-1),3)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5,5,size%,size%,1)
    if (i%>1) and (i%<=4) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    if i%=5 then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(1),4)
    if (i%>5) and (i%<=8) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),2)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),3)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),4)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),1)

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_WPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_WPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return

Patiente quelques secondes après le lancement - tu verras la toolbar de gauche "sauter" autour de la toolbar de droite.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Ven 7 Juil 2017 - 2:56

Je connaissais les petits-pois sauteurs mais les menus-sauteurs c' est une première.
lol!

En tout cas, c'est réussi.
cheers Bravo !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   Ven 7 Juil 2017 - 3:07

Je suis en train de faire la doc:
objet ImageView: 8 fonctions:
CreateImageView, ImageViewGeometry, ClearImageView, DeleteImageView,
AddImageToImageView, ScrollImageView, GetImageViewFileName, GetImageViewFileNameFromPoint
Objet Iconbutton: 9 fonctions
CreateIconButton, DeleteIconButton, IconButtonGeometry, SetIconButtonImage,
SetIconButtonImageList, SetIconButtonHint, IconButtonOptions,
DockIconButtonToIconButton, DockOjects

En Français et en Anglais - c'est du boulot.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Essai de IconButton dans KGF.dll - test préliminaire   

Revenir en haut Aller en bas
 
Essai de IconButton dans KGF.dll - test préliminaire
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]horloge test en swf
» "Oregon 450T en test gràce à un prêt chez Décathlon" vs Oziexplorer
» Mes premiers pas dans la famille vapoteuse !
» Test de la centrale Roco Z21
» Liens inactifs dans Outlook Express

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: